dump-0.2.7: README.md
Example usage:
```haskell
{-# LANGUAGE QuasiQuotes #-}
import Debug.Dump
main = print [d|a, a+1, map (+a) [1..3]|]
where a = 2
```
which prints:
(a) = 2 (a+1) = 3 (map (+a) [1..3]) = [3,4,5]
by turnint this String
```haskell
"a, a+1, map (+a) [1..3]"
```
into this expression
```haskell
( "(a) = " ++ show (a) ++ "\t " ++
"(a+1) = " ++ show (a + 1) ++ "\t " ++
"(map (+a) [1..3]) = " ++ show (map (+ a) [1 .. 3])
)
```
# QuickCheck
If you have any intermediate computation within a QuickCheck property, it can
be useful to print a counterexample simply in case of failure
```haskell
{-# LANGUAGE QuasiQuotes #-}
import Debug.Dump
import Test.QuickCheck
($>) = flip ($); infixl 0 $>
prop :: Float -> Property
prop n = n == 1 / (1 / n)
$> counterexample [d|n, 1/n, 1/(1/n)|]
main = quickCheck prop
```
Which, when executed, will print something like this:
```
*** Failed! Falsifiable (after 15 tests and 133 shrinks):
1.7051912e-38
(n) = 1.7051912e-38 (1/n) = 5.864445e37 (1/(1/n)) = 1.7051913e-38
```
Isn't it nice to see the intermediate computations as well?
See also: [list of features](FEATURES.md)
*Concieved at [this StackOverflow question](http://stackoverflow.com/q/31349556/499478).*