Hello Haskell-Café,

I am happy to announce the Express library for Haskell.

https://github.com/rudymatela/express

Express allows manipulation of dynamically typed Haskell expressions. It is similar to Data.Dynamic but with support for encoding applications and variables. It provides an Expr type and over a hundred functions for building, evaluating, comparing, folding, canonicalizing and matching Exprs. Express' Haddock documentation is pretty comprehensive.

The project README has a few examples showing how to use Express to:

This library has its origins as an internal module of Speculate and Extrapolate, I am now releasing it separetely hoping that it could be used for other purposes.

To install it, just:

$ cabal update
$ cabal install express

Then you’re ready to use it:

$ ghci
> import Data.Express
> let true = val True
> :t true
true :: Expr
> print true
True :: Bool
> eval False true
True

Rudy