packages feed

syntactic-0.7: syntactic.cabal

Name:           syntactic
Version:        0.7
Synopsis:       Generic abstract syntax, and utilities for embedded languages
Description:    This library provides:
                .
                  * Generic representation and manipulation of abstract syntax
                    using a practical encoding of open data types (based on Data
                    Types à la Carte [1])
                .
                  * Utilities for analyzing and transforming generic syntax
                .
                  * General variable binding constructs
                .
                  * 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)
                .
                Note: The library is probably mostly useful for /functional/
                object languages, such as Feldspar. Currently, it does not
                support cyclic programs.
                .
                The following people have contributed to Syntactic:
                .
                  * Anders Persson
                .
                \[1\] /Data types à la carte/, by Wouter Swierstra, in
                /Journal of Functional Programming/, 2008
                .
                \[2\] <http://hackage.haskell.org/package/feldspar-language>
License:        BSD3
License-file:   LICENSE
Author:         Emil Axelsson
Maintainer:     emax@chalmers.se
Copyright:      Copyright (c) 2011, Emil Axelsson
Homepage:       http://projects.haskell.org/syntactic/
Category:       Language
Build-type:     Simple
Cabal-version:  >=1.6

Extra-source-files:
  Examples/ALaCarte.hs
  Examples/NanoFeldspar/Core.hs
  Examples/NanoFeldspar/Extra.hs
  Examples/NanoFeldspar/Vector.hs
  Examples/NanoFeldspar/Test.hs
  CEFP/MuFeldspar/Core.hs
  CEFP/MuFeldspar/Frontend.hs
  CEFP/MuFeldspar/Prelude.hs
  CEFP/MuFeldspar/Vector.hs
  CEFP/Imperative/Compiler.hs
  CEFP/Imperative/Imperative.hs
  CEFP/Examples/CodeApplication.hs
  CEFP/Examples/Exercise10.hs
  CEFP/Examples/Exercise12.hs
  CEFP/Examples/Exercise14.hs
  CEFP/Examples/ExProg.hs
  CEFP/Examples/SolutionsSec2.hs
  CEFP/Examples/Test.hs

source-repository head
  type:     darcs
  location: http://projects.haskell.org/syntactic/

Library
  Exposed-modules:
    Language.Syntactic
    Language.Syntactic.Syntax
    Language.Syntactic.Interpretation.Equality
    Language.Syntactic.Interpretation.Render
    Language.Syntactic.Interpretation.Evaluation
    Language.Syntactic.Constructs.Annotate
    Language.Syntactic.Constructs.Symbol
    Language.Syntactic.Constructs.Literal
    Language.Syntactic.Constructs.Condition
    Language.Syntactic.Constructs.Tuple
    Language.Syntactic.Constructs.TupleSyntacticPoly
    Language.Syntactic.Constructs.TupleSyntacticSimple
    Language.Syntactic.Constructs.Binding
    Language.Syntactic.Constructs.Binding.HigherOrder
    Language.Syntactic.Constructs.Binding.Optimize
    Language.Syntactic.Constructs.Monad
    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 && < 4.4,
    containers,
    data-hash,
    mtl >= 1.1 && < 3,
    tagged,
    transformers >= 0.2,
    tuple >= 0.2

  Extensions:
    DeriveDataTypeable
    DeriveFunctor
    EmptyDataDecls
    FlexibleContexts
    FlexibleInstances
    FunctionalDependencies
    GADTs
    GeneralizedNewtypeDeriving
    MultiParamTypeClasses
    PatternGuards
    Rank2Types
    ScopedTypeVariables
    StandaloneDeriving
    TypeFamilies
    TypeOperators
    TypeSynonymInstances
    ViewPatterns