Make a type less general

This commit is contained in:
Evan Czaplicki 2013-07-22 14:41:55 +02:00
parent d9471f6c62
commit eb722a20dc
2 changed files with 4 additions and 8 deletions

View file

@ -113,7 +113,7 @@ buildFile flags moduleNum numModules interfaces filePath =
Left err -> mapM print err >> exitFailure
Right modul -> do
if print_program flags then print . pretty $ program modul else return ()
return (modul :: MetadataModule () ())
return modul
if print_types flags then printTypes metaModule else return ()
tipes <- toSrcTypes (types metaModule)

View file

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