Specify the binding structure of your data type with an
expressive set of type combinators, and unbound-generics
handles the rest! Automatically derives
alpha-equivalence, free variable calculation,
capture-avoiding substitution, and more. See
Unbound.Generics.LocallyNameless to get started.
This is an independent re-implementation of Unbound
but using GHC.Generics
instead of RepLib.
See the accompanying README for some porting notes.