data-pprint

Prettyprint and compare Data values

Latest on Hackage:0.2.4.2

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD-3-Clause licensed by Péter Diviánszky
Maintained by [email protected]

Prettyprint and compare Data values.

  • Size limit for the output

  • Time limit for the computation

  • Escape exceptions

  • Do not escape unicode characters

  • Comparison: Highlight the first difference

  • Comparison: Yes, No or Maybe results

Probably you need only the pprint and (===) functions from the Data.PPrint module.

Usage examples:

pprint [1..]
pprintTo 10000 $ repeat [1..]
pprint $ iterate (*10) 1
pprint $ map length $ replicate 5 [1..] ++ repeat []
pprint [2 `div` 0, error "xxx", 18, 4 `div` 0]
[1..10] === reverse [10,9..1]
[1..10] === reverse [10..1]
reverse [10..] === [1..]
[1..] === [1..99] ++ [101..]
([1..], [1..]) === ([1..], [1..100])
(error "x", [1..]) === (0 `div` 0, reverse [1..])
error ("xx" ++ show (length [1..])) === 1
error ("xx" ++ error "yy") === 1
(error $ unlines $ replicate 300 "xxxxxxxxxxxxxxxxxxxxxxxxxxx") === 1
pprint ['a'..]
pprint $ "hello" ++ [error "x"] ++ "world!"

See also http://pnyf.inf.elte.hu/fp/Show_en.xml

Changes since 0.1: Refactoring, proper handling of nested errors