@@ -107,6 +107,14 @@ buildFile flags moduleNum numModules interfaces filePath =
107107 bits <- L.hGetContents handle
108108 let info :: (String, ModuleInterface)
109109 info = Binary.decode bits
110+ modInterface = snd info
111+
112+ when (print_types flags)
113+ (printTypes interfaces
114+ (iTypes modInterface)
115+ (iAliases modInterface)
116+ (iImports modInterface))
117+
110118 L.length bits `seq` hClose handle
111119 return info
112120 where
@@ -145,14 +153,19 @@ buildFile flags moduleNum numModules interfaces filePath =
145153 False -> return ()
146154 True -> print . pretty $ program modul
147155 return modul
148−
149− when (print_types flags) (printTypes interfaces metaModule)
156+
157+ when (print_types flags)
158+ (printTypes interfaces
159+ (types metaModule) (aliases metaModule) (imports metaModule))
160+
150161 let interface = Canonical.interface name $ ModuleInterface {
151− iTypes = types metaModule,
152− iAdts = datatypes metaModule,
153− iAliases = aliases metaModule,
162+ iTypes = types metaModule,
163+ iImports = imports metaModule,
164+ iAdts = datatypes metaModule,
165+ iAliases = aliases metaModule,
154166 iFixities = fixities metaModule
155167 }
168+
156169 createDirectoryIfMissing True . dropFileName $ elmi flags filePath
157170 handle <- openBinaryFile (elmi flags filePath) WriteMode
158171 L.hPut handle (Binary.encode (name,interface))
@@ -160,10 +173,10 @@ buildFile flags moduleNum numModules interfaces filePath =
160173 writeFile (elmo flags filePath) (jsModule metaModule)
161174 return (name,interface)
162175
163−printTypes interfaces metaModule = do
176+printTypes interfaces moduleTypes moduleAliases moduleImports = do
164177 putStrLn ""
165− let rules = Alias.rules interfaces metaModule
166− forM_ (Map.toList $ types metaModule) $ \(n,t) -> do
178+ let rules = Alias.rules interfaces moduleAliases moduleImports
179+ forM_ (Map.toList moduleTypes) $ \(n,t) -> do
167180 print $ variable n <+> P.text ":" <+> pretty (Alias.realias rules t)
168181 putStrLn ""
169182