@hackage comptrans0.1.0.1
Automatically converting ASTs into compositional data types
Categories
License
BSD-3-Clause
Maintainer
James Koppel
Links
Versions
Installation
Dependencies (9)
- base >=4.7
- compdata <1
- containers <=0.6
- deepseq <1.4
- deepseq-generics <0.1.2
- ghc-prim >=0.2 Show all…
Dependents (1)
@hackage/acme-everything
Template Haskell for converting an AST for a language written using normal algebraic data types into ones written using multi-sorted compositional data types (Data.Comp.Multi from the compdata library) so that you can use generic and modular operators on it. You might need to add additional constructors that can e.g.: convert a (Term e Foo) into a (Term e [Foo]). The source files have comments showing example output for a simple language. See the examples directory for an extended example of generating a compositional data type for the entire Java language, with labelled variants as well as variants where an entire project of source files can be treated as a single AST -- and you can use the same operations on all of them!