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
Dependencies base (==4.*), base-orphans, constraints, containers, data-hash, deepseq, 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
Revised Revision 1 made by EmilAxelsson at Wed Nov 30 16:21:53 UTC 2016
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 Thu Oct 6 15:17:13 UTC 2016
Distributions NixOS:3.7
Downloads 14277 total (46 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 2016-10-06 [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

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees