packages feed

extensible-effects-5.0.0.1: extensible-effects.cabal

name:                extensible-effects

-- The package version.  See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- http://www.haskell.org/haskellwiki/Package_versioning_policy
-- PVP summary:      +-+------- breaking API changes
--                   | | +----- non-breaking API additions
--                   | | | +--- code changes with no API change
version:             5.0.0.1

-- A short (one-line) description of the package.
synopsis:            An Alternative to Monad Transformers

-- A longer description of the package.
description:         This package introduces datatypes for typeclass-constrained effects,
                     as an alternative to monad-transformer based (datatype-constrained)
                     approach of multi-layered effects.

                     Any help is appreciated!

stability:           Experimental

-- URL for the project homepage or repository.
homepage:            https://github.com/suhailshergill/extensible-effects

-- The license under which the package is released.
license:             MIT

-- The file containing the license text.
license-file:        LICENSE

-- The package author(s).
author:              Oleg Kiselyov, Amr Sabry, Cameron Swords, Ben Foppa

-- An email address to which users can send suggestions, bug reports, and
-- patches.
maintainer:          suhailshergill@gmail.com

-- A copyright notice.
-- copyright:

category:            Control, Effect

tested-with:         GHC==8.6.3, GHC==8.4.4, GHC==8.2.2

build-type:          Simple

-- Extra files to be distributed with the package, such as examples or a
-- README.
extra-source-files:  README.md

-- Constraint on the version of Cabal needed to build this package.
cabal-version:       >=1.10

flag lib-Werror
  default: False
  manual: True

flag dump-core
  description: Dump HTML for the core generated by GHC during compilation
  default:     False

library
  ghc-options:         -Wall -O2
  -- Modules exported by the library.
  exposed-modules:     Control.Eff
                       Control.Eff.Coroutine
                       Control.Eff.Example
                       Control.Eff.Exception
                       Control.Eff.Fresh
                       Control.Eff.Logic.Core
                       Control.Eff.Logic.NDet
                       Control.Eff.Operational
                       Control.Eff.Operational.Example
                       Control.Eff.Reader.Lazy
                       Control.Eff.State.OnDemand
                       Control.Eff.Reader.Strict
                       Control.Eff.State.Lazy
                       Control.Eff.State.Strict
                       Control.Eff.Trace
                       Control.Eff.Writer.Lazy
                       Control.Eff.Writer.Strict
                       Data.OpenUnion
                       Control.Eff.QuickStart
                       Control.Eff.Extend

  -- Modules included in this library but not exported.
  other-modules:       Control.Eff.Internal
                       Data.FTCQueue
                       Control.Eff.Logic.Experimental

  default-extensions:  NoMonomorphismRestriction
                     , MonoLocalBinds
                     , FlexibleContexts
                     , FlexibleInstances
                     , GADTs
                     , MultiParamTypeClasses
                     , RankNTypes
                     , ScopedTypeVariables
                     , DataKinds
                     , TypeOperators
                     , PolyKinds
                     , KindSignatures
  -- LANGUAGE extensions used by modules in this package.
  other-extensions:    BangPatterns
                       , CPP
                       , DeriveDataTypeable
                       , DeriveFunctor
                       , EmptyDataDecls
                       , ExistentialQuantification
                       , FlexibleContexts
                       , FlexibleInstances
                       , FunctionalDependencies
                       , GeneralizedNewtypeDeriving
                       , KindSignatures
                       , MultiParamTypeClasses
                       , NoMonomorphismRestriction
                       , PatternGuards
                       , PolyKinds
                       , RankNTypes
                       , Safe
                       , ScopedTypeVariables
                       , TupleSections
                       , Trustworthy
                       , TypeOperators
                       , UndecidableInstances

  -- Other library packages from which modules are imported.
  build-depends:       base >= 4.7 && < 5
                       -- For MonadBase
                     , transformers-base == 0.4.*
                       -- For MonadBaseControl
                     , monad-control >= 1.0 && < 1.1

  -- Directories containing source files.
  hs-source-dirs:      src

  -- Base language which the package is written in.
  default-language:    Haskell2010

  if flag(lib-Werror)
     ghc-options: -Werror

  if flag(dump-core)
    build-depends: dump-core
    ghc-options: -fplugin=DumpCore -fplugin-opt DumpCore:core-html

test-suite extensible-effects-tests
  type: exitcode-stdio-1.0
  main-is: Test.hs
  hs-source-dirs: test/
  other-modules:  Utils
                , Control.Eff.Test
                , Control.Eff.Coroutine.Test
                , Control.Eff.Example.Test
                , Control.Eff.Exception.Test
                , Control.Eff.Fresh.Test
                , Control.Eff.Logic.NDet.Bench
                , Control.Eff.Logic.NDet.Test
                , Control.Eff.Logic.Test
                , Control.Eff.Operational.Test
                , Control.Eff.Reader.Lazy.Test
                , Control.Eff.Reader.Strict.Test
                , Control.Eff.State.Lazy.Test
                , Control.Eff.State.OnDemand.Test
                , Control.Eff.State.Strict.Test
                , Control.Eff.Trace.Test
                , Control.Eff.Writer.Lazy.Test
                , Control.Eff.Writer.Strict.Test
                , DoctestRun

  ghc-options: -Wall
  if impl(ghc >= 8.0)
     ghc-options:      -Wno-type-defaults -Wno-missing-signatures -Wno-name-shadowing
  if impl(ghc < 8.0)
     ghc-options:      -fno-warn-type-defaults -fno-warn-missing-signatures -fno-warn-name-shadowing

  build-depends:
                base >= 4.7 && < 5
              , QuickCheck
              , HUnit
              , monad-control >= 1.0
              , mtl
              , silently >= 1.2
              , test-framework == 0.8.*
              , test-framework-hunit == 0.3.*
              , test-framework-quickcheck2 == 0.3.*
              , test-framework-th >= 0.2
              , doctest
              , extensible-effects

  default-language:    Haskell2010
  default-extensions:  NoMonomorphismRestriction
                     , MonoLocalBinds
                     , FlexibleContexts
                     , FlexibleInstances
                     , GADTs
                     , MultiParamTypeClasses
                     , RankNTypes
                     , ScopedTypeVariables
                     , DataKinds
                     , TypeOperators
                     , PolyKinds
                     , KindSignatures

benchmark extensible-effects-benchmarks
  type: exitcode-stdio-1.0
  main-is: Benchmarks.hs
  hs-source-dirs: benchmark/
  ghc-options: -Wall -O2 -threaded -rtsopts
  if impl(ghc >= 8.0)
     ghc-options:      -Wno-type-defaults -Wno-missing-signatures
                       -Wno-name-shadowing -Wno-unused-matches
  if impl(ghc < 8.0)
     ghc-options:      -fno-warn-type-defaults -fno-warn-missing-signatures
                       -fno-warn-name-shadowing -fno-warn-unused-matches

  build-depends:
                base >= 4.7 && < 5
              , criterion
              , extensible-effects
              , mtl
              , HUnit
              , test-framework == 0.8.*
              , test-framework-hunit == 0.3.*
              , test-framework-quickcheck2 == 0.3.*
              , test-framework-th >= 0.2

  default-language:    Haskell2010
  default-extensions:  NoMonomorphismRestriction
                     , MonoLocalBinds
                     , FlexibleContexts
                     , FlexibleInstances
                     , GADTs
                     , MultiParamTypeClasses
                     , RankNTypes
                     , ScopedTypeVariables
                     , DataKinds
                     , TypeOperators
                     , PolyKinds
                     , KindSignatures

source-repository head
  type: git
  location: https://github.com/suhailshergill/extensible-effects.git