@@ -31,10 +31,17 @@ buildFromSource noPrelude interfaces source =
31 [] -> return modul
31 [] -> return modul
32 ms -> Left ms
32 ms -> Left ms
36+ let get = Set.toList . SD.boundVars in
37+ concat [ get pattern | Definition (Def pattern _) <- decls ] ++
38+ concat [ map fst ctors | Datatype _ _ ctors <- decls ]
34 metaModule <- Canonical.metadataModule interfaces $ MetadataModule {
41 metaModule <- Canonical.metadataModule interfaces $ MetadataModule {
35 names = names,
42 names = names,
36 path = FP.joinPath names,
43 path = FP.joinPath names,
37− exports = exs,
44+ exports = exports',
38 imports = ims,
45 imports = ims,
39 -- reorder AST into strongly connected components
46 -- reorder AST into strongly connected components
40 program = SD.sortDefs . dummyLet $ TcDecl.toExpr decls,
47 program = SD.sortDefs . dummyLet $ TcDecl.toExpr decls,
@@ -48,12 +55,7 @@ buildFromSource noPrelude interfaces source =
49 types <- TI.infer interfaces metaModule
56 types <- TI.infer interfaces metaModule
51− let exports' | null exs =
53− concat [ map fst ctors | (_,_,ctors) <- datatypes metaModule ]
56− return $ metaModule { types = types, exports = exports' }
58+ return $ metaModule { types = types }
59getSortedDependencies :: Bool -> FilePath -> IO [String]
61getSortedDependencies :: Bool -> FilePath -> IO [String]