hydra-0.5.0: src/gen-main/haskell/Hydra/Tier3.hs
-- | A module for miscellaneous tier-3 functions and constants.
module Hydra.Tier3 where
import qualified Hydra.Compute as Compute
import qualified Hydra.Lib.Io as Io
import qualified Hydra.Lib.Lists as Lists
import qualified Hydra.Lib.Logic as Logic
import qualified Hydra.Lib.Maps as Maps
import qualified Hydra.Lib.Strings as Strings
import Data.Int
import Data.List as L
import Data.Map as M
import Data.Set as S
-- | Summarize a trace as a string
traceSummary :: (Compute.Trace -> String)
traceSummary t =
let messageLines = (Lists.nub (Compute.traceMessages t))
keyvalLines = (Logic.ifElse [] (Lists.cons "key/value pairs: " (Lists.map toLine (Maps.toList (Compute.traceOther t)))) (Maps.isEmpty (Compute.traceOther t)))
toLine = (\pair -> Strings.cat [
Strings.cat [
Strings.cat [
"\t",
(fst pair)],
": "],
(Io.showTerm (snd pair))])
in (Strings.intercalate "\n" (Lists.concat2 messageLines keyvalLines))