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.*), containers, data-hash, deepseq, mtl (==2.*), tagged, template-haskell, tree-view [details]
License BSD-3-Clause
Copyright Copyright (c) 2011-2015, Emil Axelsson
Author Emil Axelsson
Maintainer emax@chalmers.se
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 Mon Nov 30 15:38:14 UTC 2015
Distributions NixOS:3.7
Downloads 14347 total (72 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-11-29 [all 2 reports]
Hackage Matrix CI

Modules

  • Language
    • Language.Syntactic
      • Language.Syntactic.Decoration
      • Language.Syntactic.Functional
        • Language.Syntactic.Functional.Sharing
        • Language.Syntactic.Functional.Tuple
        • Language.Syntactic.Functional.WellScoped
      • Language.Syntactic.Interpretation
      • Language.Syntactic.Sugar
        • Language.Syntactic.Sugar.Binding
        • Language.Syntactic.Sugar.BindingT
        • Language.Syntactic.Sugar.Monad
        • Language.Syntactic.Sugar.MonadT
        • Language.Syntactic.Sugar.Tuple
        • Language.Syntactic.Sugar.TupleT
      • Language.Syntactic.Syntax
      • Language.Syntactic.TH
      • Language.Syntactic.Traversal

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