ghc-groom
Pretty printing for well-behaved Show instances
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.
BSD-3-Clause