The Grampa project consists of three related Haskell libraries:
rank2classes
is at the lowest level. It provides a set of type classes that mirrorFunctor
and related type classes but for records.grammatical-parsers
is a parser combinator and grammar combinator library that depends onrank2classes
.deep-transformations
depends on and extendsrank2classes
to operate on trees of mutually-recusive types. This library is independent of grammatical-parsers, but can be used to manipulate the parse trees produced by it.