@hackage syntactic1.8

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

For more information about the core functionality, see "A Generic Abstract Syntax Model for Embedded Languages" (ICFP 2012):

For a practical example of how to use the library, see the proof-of-concept implementation Feldspar EDSL in the examples directory. (The real Feldspar [2] is also implemented using Syntactic.)

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