syntactic-1.11: syntactic.cabal
Name: syntactic
Version: 1.11
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
.
For more information about the core functionality, see
\"A Generic Abstract Syntax Model for Embedded Languages\"
(ICFP 2012):
.
* Paper:
<http://www.cse.chalmers.se/~emax/documents/axelsson2012generic.pdf>
.
* Slides:
<http://www.cse.chalmers.se/~emax/documents/axelsson2012generic-slides.pdf>
.
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>
License: BSD3
License-file: LICENSE
Author: Emil Axelsson
Maintainer: emax@chalmers.se
Copyright: Copyright (c) 2011-2014, Emil Axelsson
Homepage: https://github.com/emilaxelsson/syntactic
Bug-reports: https://github.com/emilaxelsson/syntactic/issues
Category: Language
Build-type: Simple
Cabal-version: >=1.10
Tested-with: GHC==7.6.1, GHC==7.4.2
extra-source-files:
CONTRIBUTORS
examples/NanoFeldspar/*.hs
tests/gold/*.txt
source-repository head
type: git
location: https://github.com/emilaxelsson/syntactic
library
exposed-modules:
Data.PolyProxy
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.Frontend.Tuple
Language.Syntactic.Frontend.TupleConstrained
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 && < 4.8,
containers,
constraints,
data-hash,
ghc-prim,
mtl >= 2 && < 3,
template-haskell,
transformers >= 0.2,
tree-view,
tuple >= 0.2
hs-source-dirs: src
default-language: Haskell2010
default-extensions:
ConstraintKinds
DeriveDataTypeable
DeriveFunctor
FlexibleContexts
FlexibleInstances
FunctionalDependencies
GADTs
GeneralizedNewtypeDeriving
Rank2Types
ScopedTypeVariables
StandaloneDeriving
TypeFamilies
TypeOperators
ViewPatterns
other-extensions:
-- Not understood by Cabal: PolyKinds
OverlappingInstances
UndecidableInstances
test-suite NanoFeldsparEval
type: exitcode-stdio-1.0
hs-source-dirs: tests examples
main-is: NanoFeldsparEval.hs
other-modules:
default-language: Haskell2010
default-extensions:
FlexibleContexts
FlexibleInstances
GADTs
MultiParamTypeClasses
ScopedTypeVariables
TypeFamilies
TypeOperators
UndecidableInstances
ViewPatterns
other-extensions:
TemplateHaskell
build-depends:
syntactic,
base,
mtl >= 2 && < 3,
QuickCheck >= 2.4 && < 3,
tasty,
tasty-th,
tasty-quickcheck
test-suite NanoFeldsparTree
type: exitcode-stdio-1.0
hs-source-dirs: tests examples
main-is: NanoFeldsparTree.hs
default-language: Haskell2010
default-extensions:
FlexibleContexts
FlexibleInstances
GADTs
MultiParamTypeClasses
ScopedTypeVariables
TypeFamilies
TypeOperators
UndecidableInstances
ViewPatterns
other-extensions:
TemplateHaskell
build-depends:
syntactic,
base,
bytestring,
mtl >= 2 && < 3,
tasty,
tasty-golden,
utf8-string