@hackage syntactic1.0

Generic abstract syntax, and utilities for embedded languages

This library provides:

  • Generic representation and manipulation of abstract syntax

  • Composable AST representations (partly based on Data Types à la Carte [1])

  • A collection of common syntactic constructs, including variable binding constructs

  • Utilities for analyzing and transforming generic abstract syntax

  • Utilities for building extensible embedded languages based on generic syntax

  • A small proof-of-concept implementation of the embedded language Feldspar [2] (see the Examples directory)

For details, see the paper "A Generic Abstract Syntax Model for Embedded Languages" (ICFP 2012, http://www.cse.chalmers.se/~emax/documents/axelsson2012generic.pdf).

The maturity of this library varies between different modules. The core part (Language.Syntactic) is rather stable, but many of the other modules are in a much more experimental state.

\[1\] W. Swierstra. Data Types à la Carte. Journal of Functional Programming, 18(4):423-436, 2008, http://dx.doi.org/10.1017/S0956796808006758.

\[2\] http://hackage.haskell.org/package/feldspar-language