packages feed

syntactic-2.0: syntactic.cabal

Name:           syntactic
Version:        2.0
Synopsis:       Generic representation and manipulation of abstract syntax
Description:    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].
                .
                For more information, 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>
                .
                Example EDSL 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>.
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
Stability:      experimental
Category:       Language
Build-type:     Simple
Cabal-version:  >=1.16
Tested-with:    GHC==7.6.2, GHC==7.8.2

extra-source-files:
  CONTRIBUTORS
  examples/*.hs
  tests/*.hs
  tests/gold/*.txt
  extras/*.hs
  benchmarks/*.hs

source-repository head
  type:     git
  location: https://github.com/emilaxelsson/syntactic

library
  exposed-modules:
    Data.Syntactic
    Data.Syntactic.Syntax
    Data.Syntactic.Traversal
    Data.Syntactic.Interpretation
    Data.Syntactic.Sugar
    Data.Syntactic.Decoration
    Data.Syntactic.Functional
    Data.Syntactic.Sugar.Binding
    Data.Syntactic.Sugar.BindingT
    Data.Syntactic.Sugar.Monad
    Data.Syntactic.Sugar.MonadT

  build-depends:
    base >= 4 && < 5,
    containers,
    constraints,
    data-hash,
    mtl >= 2 && < 3,
    safe,
    tagged,
    template-haskell,
    tree-view

  hs-source-dirs: src

  default-language: Haskell2010

  default-extensions:
    DeriveDataTypeable
    DeriveFunctor
    DeriveFoldable
    DeriveTraversable
    FlexibleContexts
    FlexibleInstances
    FunctionalDependencies
    GADTs
    GeneralizedNewtypeDeriving
    RankNTypes
    ScopedTypeVariables
    TypeFamilies
    TypeOperators

  other-extensions:
    OverlappingInstances
    TemplateHaskell
    UndecidableInstances

test-suite examples
  type: exitcode-stdio-1.0

  hs-source-dirs: tests examples

  main-is: Tests.hs

  default-language: Haskell2010

  default-extensions:

  other-extensions:
    FlexibleContexts
    FlexibleInstances
    GADTs
    MultiParamTypeClasses
    ScopedTypeVariables
    TemplateHaskell
    TypeFamilies
    TypeOperators
    UndecidableInstances

  build-depends:
    syntactic,
    base,
    containers,
    QuickCheck,
    tagged,
    tasty,
    tasty-golden,
    tasty-quickcheck,
    tasty-th,
    utf8-string

benchmark syntactic-bench
  type: exitcode-stdio-1.0

  hs-source-dirs: benchmarks

  main-is: MainBenchmark.hs

  build-depends:
    base,
    criterion,
    syntactic

  default-language: Haskell2010

  default-extensions:
    FlexibleInstances
    GADTs
    MultiParamTypeClasses
    TypeOperators

  other-extensions:
    TemplateHaskell