simple-reflect-0.3.3: Simple reflection of expressions containing variables

Copyright(c) 2008-2014 Twan van Laarhoven
LicenseBSD-style
Maintainertwanvl@gmail.com
Stabilityexperimental
Portabilityportable
Safe HaskellSafe
LanguageHaskell98

Debug.SimpleReflect

Description

Simple reflection of haskell expressions containing variables.

Some examples:

> sum [1..5] :: Expr
0 + 1 + 2 + 3 + 4 + 5
> foldr1 f [a,b,c]
f a (f b c)
> take 5 (iterate f x)
[x,f x,f (f x),f (f (f x)),f (f (f (f x)))]
> mapM_ print $ reduction (1+2*(3+4))
1 + 2 * (3 + 4)
1 + 2 * 7
1 + 14
15

Documentation