syntactic-1.4: Generic abstract syntax, and utilities for embedded languages

syntactic-1.4: 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

Modules