[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.

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:

* 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
	True

--

Rudy


[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