@@ -21,6 +21,7 @@ import Text.PrettyPrint as P
22import Transform.Canonicalize.Environment as Env
22import Transform.Canonicalize.Environment as Env
23import qualified Transform.Canonicalize.Type as Canonicalize
23import qualified Transform.Canonicalize.Type as Canonicalize
24+import qualified Transform.Interface as Interface
25environment :: Module.Interfaces -> Module.ValidModule -> Canonicalizer [Doc] Environment
26environment :: Module.Interfaces -> Module.ValidModule -> Canonicalizer [Doc] Environment
26environment interfaces modul@(Module.Module _ _ _ imports decls) =
27environment interfaces modul@(Module.Module _ _ _ imports decls) =
@@ -48,7 +49,7 @@ environment interfaces modul@(Module.Module _ _ _ imports decls) =
49addImports :: String -> Module.Interfaces -> Environment -> (String, Module.ImportMethod)
50addImports :: String -> Module.Interfaces -> Environment -> (String, Module.ImportMethod)
50 -> Canonicalizer [Doc] Environment
51 -> Canonicalizer [Doc] Environment
51−addImports moduleName interfaces environ (name,method)
52+addImports moduleName interfaces environ (name, method)
52 | List.isPrefixOf "Native." name = return environ
53 | List.isPrefixOf "Native." name = return environ
53 | otherwise =
54 | otherwise =
54 case method of
55 case method of
@@ -59,7 +60,7 @@ addImports moduleName interfaces environ (name,method)
59 | open -> return (updateEnviron "")
60 | open -> return (updateEnviron "")
60 | otherwise -> foldM (addValue name interface) environ vs
61 | otherwise -> foldM (addValue name interface) environ vs
62− interface = (Map.!) interfaces name
63+ interface = Interface.filterExports ((Map.!) interfaces name)
64 updateEnviron prefix =
65 updateEnviron prefix =
65 let dict' = dict . map (first (prefix++)) in
66 let dict' = dict . map (first (prefix++)) in