Heavily inspired by multirec
, this library uses PolyKinds
and SingI
constraints to achieve the same dependent typing as multirec
.
This library defines the IFunctor
typeclass and recursion-schemes
on IFunctor
s.
Goals:
singlethongs
, which in turn only depends
on template-haskell
. As a result, it should be easy to include in
any projectmulrirec
)Non-Goals:
IShow
, IRead
, IEq
, IOrd
, ITraversable
instances.
I also recommend writing pattern synonyms to remove the IFix
constructor.
Writing these can be a pain, but its only required once for the main data structure,
and one IFunctor
instance whenever you write a dependent recursion-scheme.recurion-schemes
library almost directly,
simply lifting everything up from *
to k -> *
. In a future release,
INLINE
pragmas will be added and possibly benchmarked.Not written, but haddocks on the github user site.