[Haskell-cafe] [ANN] express-0.1.2: manipulate dynamically typed Haskell expressions

Rudy Matela rudy at matela.com.br
Sun Aug 18 15:36:52 UTC 2019

Hello Haskell-Café,

I am happy to announce the [Express] library for Haskell.


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:

* create heterogeneous lists;

* list valid applications between expressions;

* generalize counterexamples;

* automatically generate test properties.

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



[Express]: https://github.com/rudymatela/express
[Express' Haddock documentation]: https://hackage.haskell.org/package/express/docs/Data-Express.html
[README]: https://github.com/rudymatela/express#readme

[Speculate]: https://github.com/rudymatela/speculate
[Extrapolate]: https://github.com/rudymatela/extrapolate
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20190818/1060e9a1/attachment.html>

More information about the Haskell-Cafe mailing list