on master help sign in
Make a type less general
eb722a2Evan Czaplicki
compiler/Compiler.hs+1−1
@@ -113,7 +113,7 @@ buildFile flags moduleNum numModules interfaces filePath =
113 Left err -> mapM print err >> exitFailure
113 Left err -> mapM print err >> exitFailure
114 Right modul -> do
114 Right modul -> do
115 if print_program flags then print . pretty $ program modul else return ()
115 if print_program flags then print . pretty $ program modul else return ()
116− return (modul :: MetadataModule () ())
116+ return modul
117
117
118 if print_types flags then printTypes metaModule else return ()
118 if print_types flags then printTypes metaModule else return ()
119 tipes <- toSrcTypes (types metaModule)
119 tipes <- toSrcTypes (types metaModule)
compiler/Initialize.hs+3−7
@@ -18,12 +18,9 @@ import qualified Type.Inference as TI
18import qualified Type.Constrain.Declaration as TcDecl
18import qualified Type.Constrain.Declaration as TcDecl
19
19
20import System.IO.Unsafe
20import System.IO.Unsafe
21+import SourceSyntax.PrettyPrint
21
22
22−buildFromSource ::
23− (Data t, Data v) =>
24− Interfaces ->
25− String ->
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
29
26
@@ -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 ],