module Build.Print where import System.IO (hPutStrLn, stderr) import System.Exit (exitFailure) import qualified Data.Map as Map import qualified Data.List as List import qualified AST.Module as Module import qualified AST.PrettyPrint as Pretty import qualified Text.PrettyPrint as P types :: Module.Types -> IO () types ts = do putStrLn "" mapM_ printType (Map.toList ts) putStrLn "" where printType (n,t) = do print $ P.hsep [ Pretty.variable n , P.text ":" , Pretty.pretty t ] errors :: [P.Doc] -> IO () errors errs = mapM_ print (List.intersperse (P.text " ") errs) failure :: String -> IO a failure msg = hPutStrLn stderr msg >> exitFailure