packages feed

imperative-edsl-0.5: imperative-edsl.cabal

name:                imperative-edsl
version:             0.5
synopsis:            Deep embedding of imperative programs with code generation
description:         Deep embedding of imperative programs with code generation.
                     .
                     The main module for users who want to write imperative
                     programs is "Language.Embedded.Imperative" (and optionally
                     "Language.Embedded.CExp" which provides a simple expression
                     language).
                     .
                     Examples can be found in the @examples@ directory.
license:             BSD3
license-file:        LICENSE
author:              Anders Persson, Emil Axelsson, Markus Aronsson
maintainer:          emax@chalmers.se
copyright:           Copyright (c) 2015-2016, Anders Persson, Emil Axelsson, Markus Aronsson
homepage:            https://github.com/emilaxelsson/imperative-edsl
bug-reports:         https://github.com/emilaxelsson/imperative-edsl/issues
category:            Language
build-type:          Simple
cabal-version:       >=1.10

extra-source-files:
  examples/*.hs
  tests/*.hs

source-repository head
  type:     git
  location: git@github.com:emilaxelsson/imperative-edsl.git

Flag old-syntactic
  Description: Use syntactic < 2
  Default:     False

library
  exposed-modules:
    Control.Monads
    System.IO.Fake
    Language.C.Monad
    Language.Embedded.Expression
    Language.Embedded.Traversal
    Language.Embedded.Imperative.CMD
    Language.Embedded.Imperative.Args
    Language.Embedded.Imperative.Frontend.General
    Language.Embedded.Imperative.Frontend
    Language.Embedded.Imperative
    Language.Embedded.Concurrent.CMD
    Language.Embedded.Concurrent
    Language.Embedded.Signature
    Language.Embedded.Backend.C
    Language.Embedded.Backend.C.Expression
    Language.Embedded.CExp

  other-modules:
    Language.Embedded.Imperative.Backend.C
    Language.Embedded.Concurrent.Backend.C
      -- No need to export these since only the instances are interesting

  default-language: Haskell2010

  default-extensions:
    ConstraintKinds
    DataKinds
    DefaultSignatures
    DeriveDataTypeable
    DeriveFoldable
    DeriveFunctor
    DeriveTraversable
    FlexibleContexts
    FlexibleInstances
    GADTs
    GeneralizedNewtypeDeriving
    MultiParamTypeClasses
    PatternSynonyms
    PolyKinds
    Rank2Types
    RecordWildCards
    ScopedTypeVariables
    StandaloneDeriving
    TypeFamilies
    TypeOperators
    ViewPatterns

  other-extensions:
    CPP
    QuasiQuotes
    UndecidableInstances

  build-depends:
    array,
    base >=4 && <5,
    containers,
    deepseq,
    directory,
    exception-transformers,
    ghc-prim,
    language-c-quote >= 0.11 && < 0.12,
    mainland-pretty >= 0.4 && < 0.5,
    microlens >= 0.3.0.0,
    microlens-mtl,
    microlens-th,
    mtl,
    process,
    operational-alacarte >= 0.2,
    BoundedChan,
    srcloc,
    time >= 1.5.0.1

  if flag(old-syntactic)
    build-depends:
      syntactic < 2
  else
    build-depends:
      open-typerep >= 0.4,
      syntactic >= 3.2

  hs-source-dirs: src

test-suite Tests
  type: exitcode-stdio-1.0

  hs-source-dirs: tests examples

  main-is: Tests.hs

  default-language: Haskell2010

  build-depends:
    base,
    imperative-edsl,
    syntactic,
    tasty-quickcheck,
    tasty-th