packages feed

freer-simple-1.2.1.2: freer-simple.cabal

cabal-version: 2.4
name: freer-simple
version: 1.2.1.2
category: Control
build-type: Simple

synopsis: A friendly effect system for Haskell.
description:
  An implementation of an effect system for Haskell (a fork of
  <http://hackage.haskell.org/package/freer-effects freer-effects>), which is
  based on the work of Oleg Kiselyov et al.:
  .
    * <http://okmij.org/ftp/Haskell/extensible/more.pdf Freer Monads, More Extensible Effects>
    * <http://okmij.org/ftp/Haskell/zseq.pdf Reflection without Remorse>
    * <http://okmij.org/ftp/Haskell/extensible/exteff.pdf Extensible Effects>
  .
  The key features are:
  .
    * An efficient effect system for Haskell - as a library!
    * Reimplementations of several common Haskell monad transformers as effects.
    * Core components for defining your own Effects.

author: Allele Dev, Ixcom Core Team, Alexis King, and other contributors
maintainer: Alexis King <lexi.lambda@gmail.com>
copyright: 2016 Allele Dev; 2017 Ixperta Solutions s.r.o.; 2017 Alexis King
license: BSD-3-Clause
license-file: LICENSE
homepage: https://github.com/lexi-lambda/freer-simple
bug-reports: https://github.com/lexi-lambda/freer-simple/issues

extra-source-files:
  CHANGELOG.md
  README.md

source-repository head
  type: git
  location: https://github.com/lexi-lambda/freer-simple

common common
  ghc-options:
    -Wall
    -Wcompat
    -Wincomplete-record-updates
    -Wincomplete-uni-patterns
    -Wredundant-constraints

  default-language: Haskell2010
  default-extensions:
    ConstraintKinds
    DataKinds
    DeriveFunctor
    FlexibleContexts
    FlexibleInstances
    FunctionalDependencies
    GADTs
    LambdaCase
    MultiParamTypeClasses
    RankNTypes
    ScopedTypeVariables
    TypeApplications
    TypeOperators

  build-depends: base >= 4.9 && < 5

library
  import: common
  hs-source-dirs: src
  exposed-modules:
    Control.Monad.Freer
    Control.Monad.Freer.Coroutine
    Control.Monad.Freer.Error
    Control.Monad.Freer.Fresh
    Control.Monad.Freer.Internal
    Control.Monad.Freer.NonDet
    Control.Monad.Freer.Reader
    Control.Monad.Freer.State
    Control.Monad.Freer.TH
    Control.Monad.Freer.Trace
    Control.Monad.Freer.Writer
    Data.FTCQueue
    Data.OpenUnion
    Data.OpenUnion.Internal

  build-depends:
    , natural-transformation >= 0.2
    , transformers-base
    , template-haskell >= 2.11 && < 2.19

executable freer-simple-examples
  import: common
  hs-source-dirs: examples/src
  main-is: Main.hs
  other-modules:
    Capitalize
    Console
    Coroutine
    Fresh
    Trace

  build-depends: freer-simple

test-suite freer-simple-test
  import: common
  type: exitcode-stdio-1.0
  hs-source-dirs: tests
  main-is: Tests.hs
  other-modules:
    Tests.Coroutine
    Tests.Exception
    Tests.Fresh
    Tests.Loop
    Tests.NonDet
    Tests.Reader
    Tests.State
    Tests.TH

  build-depends:
    , QuickCheck
    , freer-simple
    , tasty
    , tasty-hunit
    , tasty-quickcheck

benchmark freer-simple-bench
  import: common
  type: exitcode-stdio-1.0
  hs-source-dirs: bench
  main-is: Core.hs
  ghc-options: -O2

  build-depends:
    , criterion
    , extensible-effects
    , free
    , freer-simple
    , mtl