groom

Pretty printing for well-behaved Show instances.

Version on this page:0.1.2
LTS Haskell 22.14:0.1.2.1
Stackage Nightly 2024-03-28:0.1.2.1
Latest on Hackage:0.1.2.1

See all snapshots groom appears in

LicenseRef-PublicDomain licensed by Edward Z. Yang
Maintained by [email protected]
This version can be pinned in stack with:groom-0.1.2@sha256:08df8da4232bfbe1ac631a3a5dbe77364370ad24f4613ecfb247d2a6c9e81329,1660

Module documentation for 0.1.2

Used by 2 packages in nightly-2016-03-03(full list with versions):

Automatically derived Show instances are an easy way to inspect data in your program. However, for large data-structures, the resulting output lacks whitespace, making it unreadable. Groom offers an replacement to show called groom which attempts to pretty-print the output of show. For example:

let x = parseExp "foobar 1 [1,2]"
in do
  putStrLn (show x)
  putStrLn (groom x)

results in:

ParseOk (App (App (Var (UnQual (Ident "foobar"))) (Lit (Int 1))) (List [Lit (Int 1),Lit (Int 2)]))
ParseOk
  (App (App (Var (UnQual (Ident "foobar"))) (Lit (Int 1)))
     (List [Lit (Int 1), Lit (Int 2)]))

Groom works only on Show instances that output valid Haskell code; if Groom can't understand its input, it will not make any changes.