@@ -124,8 +124,10 @@ typeCheckAll mainModuleName moduleName (d@(DataBindingGroupDeclaration tys) : re
124 return $ d : ds
124 return $ d : ds
126 toTypeSynonym (TypeSynonymDeclaration nm args ty) = Just (nm, args, ty)
126 toTypeSynonym (TypeSynonymDeclaration nm args ty) = Just (nm, args, ty)
127+ toTypeSynonym (PositionedDeclaration _ d') = toTypeSynonym d'
127 toTypeSynonym _ = Nothing
128 toTypeSynonym _ = Nothing
128 toDataDecl (DataDeclaration nm args dctors) = Just (nm, args, dctors)
129 toDataDecl (DataDeclaration nm args dctors) = Just (nm, args, dctors)
130+ toDataDecl (PositionedDeclaration _ d') = toDataDecl d'
129 toDataDecl _ = Nothing
131 toDataDecl _ = Nothing
130typeCheckAll mainModuleName moduleName (d@(TypeSynonymDeclaration name args ty) : rest) = do
132typeCheckAll mainModuleName moduleName (d@(TypeSynonymDeclaration name args ty) : rest) = do
131 rethrow (strMsg ("Error in type synonym " ++ show name) <>) $ do
133 rethrow (strMsg ("Error in type synonym " ++ show name) <>) $ do
@@ -195,4 +197,6 @@ typeCheckAll mainModuleName moduleName (d@(ExternInstanceDeclaration dictName de
195 ds <- typeCheckAll mainModuleName moduleName rest
197 ds <- typeCheckAll mainModuleName moduleName rest
196 return $ d : ds
198 return $ d : ds
197typeCheckAll mainModuleName moduleName (PositionedDeclaration pos d : rest) =
199typeCheckAll mainModuleName moduleName (PositionedDeclaration pos d : rest) =
200+ rethrowWithPosition pos $ do
198− rethrowWithPosition pos $ typeCheckAll mainModuleName moduleName (d : rest)
201+ (d' : rest') <- typeCheckAll mainModuleName moduleName (d : rest)
202+ return (PositionedDeclaration pos d' : rest')