[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