Advise-me-0.1: src/Util/Pretty.hs
-----------------------------------------------------------------------------
-- Copyright 2019, Advise-Me project team. This file is distributed under
-- the terms of the Apache License 2.0. For more information, see the files
-- "LICENSE.txt" and "NOTICE.txt", which are included in the distribution.
-----------------------------------------------------------------------------
-- |
-- Maintainer : bastiaan.heeren@ou.nl
-- Stability : provisional
-- Portability : portable (depends on ghc)
--
-- Prettyprinting for commonly used datatypes.
--
-----------------------------------------------------------------------------
module Util.Pretty where
import Text.PrettyPrint.Leijen ( (<$$>) )
import qualified Data.Map as M
import qualified Text.PrettyPrint.Leijen as PP
prettyMap :: (PP.Pretty a, PP.Pretty b) => M.Map a b -> PP.Doc
prettyMap = (<$$> PP.empty)
. PP.vsep
. map (\(k,v) -> PP.empty <$$> PP.pretty k <$$> PP.indent 4 (PP.pretty v))
. M.toList