packages feed

syntactic-1.4: syntactic.cabal

Name:           syntactic
Version:        1.4
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-2012, Emil Axelsson
Homepage:       http://projects.haskell.org/syntactic/
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:     darcs
  location: http://projects.haskell.org/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.7,
    containers,
    constraints,
    data-hash,
    ghc-prim,
    mtl >= 2 && < 3,
    transformers >= 0.2,
    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 >= 4 && < 4.7,
    QuickCheck >= 2.4 && < 3,
    test-framework >= 0.6,
    test-framework-th >= 0.2,
    test-framework-quickcheck2 >= 0.2

test-suite NanoFeldsparTree
  type: exitcode-stdio-1.0

  hs-source-dirs: tests examples

  main-is: NanoFeldsparTree.hs

  other-modules:

  default-language: Haskell2010

  default-extensions:
    FlexibleContexts
    FlexibleInstances
    GADTs
    MultiParamTypeClasses
    ScopedTypeVariables
    TypeFamilies
    TypeOperators
    UndecidableInstances
    ViewPatterns

  other-extensions:
    TemplateHaskell

  build-depends:
    syntactic,
    base >= 4 && < 4.7,
    bytestring,
    test-framework >= 0.6,
    test-framework-golden >= 1.1