data-pprint-0.2.4: Prettyprint and compare Data values

data-pprint-0.2.4: Prettyprint and compare Data values

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

Modules