Module documentation for 0.1.2.1
For the most part, I tried to keep the same methods with the same signatures. However there are a few differences.
fv :: Alpha t => Fold t (Name n)
fvmethod returns a
Fold(in the sense of the lens library), rather than an
Unbound.Util.Collectioninstance. That means you will generally have to write
toListOf fv tor some other summary operation.
isPat :: Alpha t => t -> DisjointSet AnyName
You should only notice this if you’re implementing an instance of
Alphaby hand (rather than by using the default generic instance). The original
Maybe [AnyName]here with the same interpretation as
Nothingmeans an inconsistency was encountered, or
Justthe free variables of the pattern.
embed :: IsEmbed e => Embedded e -> eand
unembed :: IsEmbed e => e -> Embedded e
Iso(again in the sense of the
lenslibrary) as a method instead of the above pair of methods.
Again, you should only notice this if you’re implementing your own types that are instances of
IsEmbed. The easiest thing to do is to use implement
embedded = iso yourEmbed yourUnembedwhere
lens. (Although you can also implement it in terms of
dimapif you don’t want to depend on lens)
- Fix ghc-7.10 build.
- Haddock cleanup.
- Depend on ‘profunctors’
unembedto work over any
Shifttype for shifting the scope of embedded terms out one level.
- Implement a TH
makeClosedAlphasplice for constructing trivial leaf instances.
Alphainstances will need to define this additional method now. Major version bump.
Add ‘name2Integer’ method (christiaanb)
Export internal type-directed
gclose, etc functions from
Allows definitions like:
instance Alpha Term where aeq' _ (Prim t1 _dk1) (Prim t2 _dk2) = t1 == t2 aeq' c t1 t2 = gaeq c (from t1) (from t2)
- Unconditionally add ErrorT and ExceptT instances using transformers-compat (bergmark)
Add ‘Rec’ pattern and ‘TRec’ term combinators.
Alpha instance for ‘()’
Add ‘lunbind2’ function.
Switch from ‘HUnit’ to ‘Tasty’ for testing.
- Initial (re-)implementation effort.