syntactic: Generic representation and manipulation of abstract syntax

[ bsd3, language, library ] [ Propose Tags ]

The library provides a generic representation of type-indexed abstract syntax trees (or indexed data types in general). It also permits the definition of open syntax trees based on the technique in Data Types à la Carte [1].

(Note that the difference between version 2.x and 3.0 is not that big. The bump to 3.0 was done because the modules changed namespace.)

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

Example EDSLs can be found in the examples folder.

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

Versions 0.1, 0.2, 0.2.0.1, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.0.1, 1.2, 1.2.1, 1.3, 1.4, 1.5.1, 1.5.2, 1.6.1, 1.7.1, 1.8, 1.9, 1.10, 1.11, 1.12.1, 1.13, 1.14, 1.15, 1.15.1, 1.16, 1.16.1, 1.16.2, 2.0, 2.1, 3.0, 3.1, 3.2, 3.2.1, 3.3, 3.4, 3.5, 3.6, 3.6.1, 3.6.2, 3.6.3, 3.7, 3.7.1
Dependencies base (>=4.6 && <5), base-orphans, constraints, containers, data-hash, deepseq (>=1.4.3.0), mtl (==2.*), syb, tagged, template-haskell, tree-view (>=0.5) [details]
License BSD-3-Clause
Copyright Copyright (c) 2011-2015, Emil Axelsson
Author Emil Axelsson
Maintainer 78emil@gmail.com
Category Language
Home page https://github.com/emilaxelsson/syntactic
Bug tracker https://github.com/emilaxelsson/syntactic/issues
Source repo head: git clone https://github.com/emilaxelsson/syntactic
Uploaded by EmilAxelsson at Tue Oct 3 15:07:05 UTC 2017
Distributions NixOS:3.7.1
Downloads 15091 total (592 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-10-03 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Flags

NameDescriptionDefaultType
th

Include the module Language.Syntactic.TH, which uses Template Haskell

EnabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees