packages feed

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