@@ -107,6 +107,14 @@ buildFile flags moduleNum numModules interfaces filePath =
107 bits <- L.hGetContents handle
107 bits <- L.hGetContents handle
108 let info :: (String, ModuleInterface)
108 let info :: (String, ModuleInterface)
109 info = Binary.decode bits
109 info = Binary.decode bits
110+ modInterface = snd info
112+ when (print_types flags)
113+ (printTypes interfaces
114+ (iTypes modInterface)
115+ (iAliases modInterface)
116+ (iImports modInterface))
110 L.length bits `seq` hClose handle
118 L.length bits `seq` hClose handle
111 return info
119 return info
@@ -145,14 +153,19 @@ buildFile flags moduleNum numModules interfaces filePath =
145 False -> return ()
153 False -> return ()
146 True -> print . pretty $ program modul
154 True -> print . pretty $ program modul
147 return modul
155 return modul
149− when (print_types flags) (printTypes interfaces metaModule)
157+ when (print_types flags)
158+ (printTypes interfaces
159+ (types metaModule) (aliases metaModule) (imports metaModule))
150 let interface = Canonical.interface name $ ModuleInterface {
161 let interface = Canonical.interface name $ ModuleInterface {
151− iTypes = types metaModule,
162+ iTypes = types metaModule,
163+ iImports = imports metaModule,
152− iAdts = datatypes metaModule,
164+ iAdts = datatypes metaModule,
153− iAliases = aliases metaModule,
165+ iAliases = aliases metaModule,
154 iFixities = fixities metaModule
166 iFixities = fixities metaModule
156 createDirectoryIfMissing True . dropFileName $ elmi flags filePath
169 createDirectoryIfMissing True . dropFileName $ elmi flags filePath
157 handle <- openBinaryFile (elmi flags filePath) WriteMode
170 handle <- openBinaryFile (elmi flags filePath) WriteMode
158 L.hPut handle (Binary.encode (name,interface))
171 L.hPut handle (Binary.encode (name,interface))
@@ -160,10 +173,10 @@ buildFile flags moduleNum numModules interfaces filePath =
160 writeFile (elmo flags filePath) (jsModule metaModule)
173 writeFile (elmo flags filePath) (jsModule metaModule)
161 return (name,interface)
174 return (name,interface)
163−printTypes interfaces metaModule = do
176+printTypes interfaces moduleTypes moduleAliases moduleImports = do
164 putStrLn ""
177 putStrLn ""
165− let rules = Alias.rules interfaces metaModule
178+ let rules = Alias.rules interfaces moduleAliases moduleImports
166− forM_ (Map.toList $ types metaModule) $ \(n,t) -> do
179+ forM_ (Map.toList moduleTypes) $ \(n,t) -> do
167 print $ variable n <+> P.text ":" <+> pretty (Alias.realias rules t)
180 print $ variable n <+> P.text ":" <+> pretty (Alias.realias rules t)
168 putStrLn ""
181 putStrLn ""