on 2a930fd help sign in
elk/src/Build/Print.hs
28 lines 736 B history raw
1module Build.Print where
3import System.IO (hPutStrLn, stderr)
4import System.Exit (exitFailure)
6import qualified Data.Map as Map
7import qualified Data.List as List
8import qualified AST.Module as Module
9import qualified AST.PrettyPrint as Pretty
10import qualified Text.PrettyPrint as P
12types :: Module.Types -> IO ()
13types ts =
14 do putStrLn ""
15 mapM_ printType (Map.toList ts)
16 putStrLn ""
17 where
18 printType (n,t) = do
19 print $ P.hsep [ Pretty.variable n
20 , P.text ":"
21 , Pretty.pretty t ]
23errors :: [P.Doc] -> IO ()
24errors errs =
25 mapM_ print (List.intersperse (P.text " ") errs)
27failure :: String -> IO a
28failure msg = hPutStrLn stderr msg >> exitFailure