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

Copyright | (c) 2008-2014 Twan van Laarhoven
License | BSD-style
Maintainer | twanvl@gmail.com
Stability | experimental
Portability | portable
Safe Haskell | Safe-Inferred
Language | Haskell98

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

module Debug.SimpleReflect.Expr

module Debug.SimpleReflect.Vars