th-alpha: Alpha equivalence for TH Exp
Compare TH expressions (or clauses, patterns, etc.) for alpha equivalence. That is, compare for equality modulo the renaming of bound variables.
areExpAEq [| \x -> x |] [| \y -> y |] -- True
do let x = mkName "x" let y = mkName "y" runQ $ (LamE [VarP x] (VarE x)) @= (LamE [VarP y] (VarE y)) -- True
This can be useful when for instance testing libraries that use Template Haskell - usually correctness is only defined up to alpha equivalence.
Downloads
- th-alpha-0.2.0.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.2.0.0, 0.2.0.1, 0.2.0.2, 0.2.1.0 |
---|---|
Dependencies | base (>=4 && <5), containers, mmorph (>1 && <2), mtl (>=2 && <3), template-haskell, th-desugar (>=1.4 && <1.5), transformers [details] |
License | BSD-3-Clause |
Copyright | Julian K. Arni |
Author | Julian K. Arni |
Maintainer | Julian K. Arni <jkarni@gmail.com> |
Category | Language |
Home page | https://github.com/jkarni/th-alpha |
Bug tracker | https://github.com/jkarni/th-alpha/issues |
Uploaded | by jkarni at 2015-02-12T06:29:46Z |
Distributions | |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Downloads | 4730 total (21 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2015-02-12 [all 1 reports] |