syntactic-1.0: syntactic.cabal
Name: syntactic
Version: 1.0
Synopsis: Generic abstract syntax, and utilities for embedded languages
Description: 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
.
* A small proof-of-concept implementation of the embedded
language Feldspar [2] (see the @Examples@ directory)
.
For details, see the paper
\"A Generic Abstract Syntax Model for Embedded Languages\"
(ICFP 2012,
<http://www.cse.chalmers.se/~emax/documents/axelsson2012generic.pdf>).
.
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>
License: BSD3
License-file: LICENSE
Author: Emil Axelsson
Maintainer: emax@chalmers.se
Copyright: Copyright (c) 2011-2012, Emil Axelsson
Homepage: http://projects.haskell.org/syntactic/
Category: Language
Build-type: Simple
Cabal-version: >=1.6
Extra-source-files:
Examples/NanoFeldspar/Core.hs
Examples/NanoFeldspar/Extra.hs
Examples/NanoFeldspar/Vector.hs
Examples/NanoFeldspar/Test.hs
source-repository head
type: darcs
location: http://projects.haskell.org/syntactic/
Library
Exposed-modules:
Data.DynamicAlt
Language.Syntactic
Language.Syntactic.Syntax
Language.Syntactic.Traversal
Language.Syntactic.Constraint
Language.Syntactic.Sugar
Language.Syntactic.Interpretation.Equality
Language.Syntactic.Interpretation.Evaluation
Language.Syntactic.Interpretation.Render
Language.Syntactic.Interpretation.Semantics
Language.Syntactic.Constructs.Binding
Language.Syntactic.Constructs.Binding.HigherOrder
Language.Syntactic.Constructs.Binding.Optimize
Language.Syntactic.Constructs.Condition
Language.Syntactic.Constructs.Construct
Language.Syntactic.Constructs.Decoration
Language.Syntactic.Constructs.Identity
Language.Syntactic.Constructs.Literal
Language.Syntactic.Constructs.Monad
Language.Syntactic.Constructs.Tuple
Language.Syntactic.Frontend.Monad
Language.Syntactic.Sharing.SimpleCodeMotion
Language.Syntactic.Sharing.Utils
Language.Syntactic.Sharing.Graph
Language.Syntactic.Sharing.StableName
Language.Syntactic.Sharing.Reify
Language.Syntactic.Sharing.ReifyHO
Other-modules:
Build-depends:
array,
base >= 4.0 && < 4.7,
containers,
constraints,
data-hash,
ghc-prim,
mtl >= 2 && < 3,
tagged,
transformers >= 0.2,
tuple >= 0.2
Extensions:
ConstraintKinds
DeriveDataTypeable
DeriveFunctor
FlexibleContexts
FlexibleInstances
FunctionalDependencies
GADTs
GeneralizedNewtypeDeriving
PatternGuards
Rank2Types
ScopedTypeVariables
StandaloneDeriving
TypeFamilies
TypeOperators
ViewPatterns