@@ -18,12 +18,9 @@ import qualified Type.Inference as TI
18import qualified Type.Constrain.Declaration as TcDecl
18import qualified Type.Constrain.Declaration as TcDecl
20import System.IO.Unsafe
20import System.IO.Unsafe
21+import SourceSyntax.PrettyPrint
26− Either [Doc] (MetadataModule t v)
23+buildFromSource :: Interfaces -> String -> Either [Doc] (MetadataModule () ())
27buildFromSource interfaces source =
24buildFromSource interfaces source =
28 do modul@(Module _ _ _ decls') <- Parse.program source
25 do modul@(Module _ _ _ decls') <- Parse.program source
@@ -41,8 +38,7 @@ buildFromSource interfaces source =
41 -- reorder AST into strongly connected components
38 -- reorder AST into strongly connected components
42 program = SD.sortDefs . dummyLet $ TcDecl.toExpr decls,
39 program = SD.sortDefs . dummyLet $ TcDecl.toExpr decls,
43 types = Map.empty,
40 types = Map.empty,
44− datatypes = [ (name, vars, ctors) | Datatype name vars ctors <- decls ] ++
41+ datatypes = [ (name, vars, ctors) | Datatype name vars ctors <- decls ],
45− concatMap iAdts (Map.elems interfaces),
46 fixities = [ (assoc,level,op) | Fixity assoc level op <- decls ],
42 fixities = [ (assoc,level,op) | Fixity assoc level op <- decls ],
47 aliases = [ (name,tvs,tipe) | TypeAlias name tvs tipe <- decls ],
43 aliases = [ (name,tvs,tipe) | TypeAlias name tvs tipe <- decls ],
48 foreignImports = [ (evt,v,name,typ) | ImportEvent evt v name typ <- decls ],
44 foreignImports = [ (evt,v,name,typ) | ImportEvent evt v name typ <- decls ],