packages feed

polysemy-1.4.0.0: polysemy.cabal

cabal-version:      2.0
name:               polysemy
version:            1.4.0.0
license:            BSD3
license-file:       LICENSE
copyright:          2019 Sandy Maguire
maintainer:         sandy@sandymaguire.me
author:             Sandy Maguire
homepage:           https://github.com/polysemy-research/polysemy#readme
bug-reports:        https://github.com/polysemy-research/polysemy/issues
synopsis:           Higher-order, low-boilerplate free monads.
description:
    Please see the README on GitHub at <https://github.com/isovector/polysemy#readme>

category:           Language
build-type:         Custom
extra-source-files:
    README.md
    ChangeLog.md

source-repository head
    type:     git
    location: https://github.com/polysemy-research/polysemy

custom-setup
    setup-depends:
        Cabal >=3.0.1.0 && <3.1,
        base >=4.9 && <5,
        cabal-doctest >=1.0.6 && <1.1

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

flag error-messages
    description: Provide custom error messages
    manual:      True

library
    exposed-modules:
        Polysemy
        Polysemy.Async
        Polysemy.AtomicState
        Polysemy.Bundle
        Polysemy.Embed
        Polysemy.Embed.Type
        Polysemy.Error
        Polysemy.Fail
        Polysemy.Fail.Type
        Polysemy.Final
        Polysemy.Fixpoint
        Polysemy.Input
        Polysemy.Internal
        Polysemy.Internal.Bundle
        Polysemy.Internal.Combinators
        Polysemy.Internal.CustomErrors
        Polysemy.Internal.CustomErrors.Redefined
        Polysemy.Internal.Fixpoint
        Polysemy.Internal.Forklift
        Polysemy.Internal.Kind
        Polysemy.Internal.NonDet
        Polysemy.Internal.Strategy
        Polysemy.Internal.Tactics
        Polysemy.Internal.TH.Common
        Polysemy.Internal.TH.Effect
        Polysemy.Internal.Union
        Polysemy.Internal.Writer
        Polysemy.IO
        Polysemy.Law
        Polysemy.Membership
        Polysemy.NonDet
        Polysemy.Output
        Polysemy.Reader
        Polysemy.Resource
        Polysemy.State
        Polysemy.State.Law
        Polysemy.Tagged
        Polysemy.Trace
        Polysemy.View
        Polysemy.Writer

    hs-source-dirs:     src
    other-modules:
        Polysemy.Internal.PluginLookup
        Paths_polysemy

    autogen-modules:    Paths_polysemy
    default-language:   Haskell2010
    default-extensions:
        DataKinds DeriveFunctor FlexibleContexts GADTs LambdaCase PolyKinds
        RankNTypes ScopedTypeVariables StandaloneDeriving TypeApplications
        TypeOperators TypeFamilies UnicodeSyntax

    ghc-options:        -Wall
    build-depends:
        QuickCheck >=2.11.3 && <3,
        async >=2.2 && <3,
        base >=4.9 && <5,
        containers >=0.5 && <0.7,
        first-class-families >=0.5.0.0 && <0.9,
        mtl >=2.2.2 && <3,
        stm ==2.*,
        syb ==0.7.*,
        template-haskell >=2.12.0.0 && <3,
        th-abstraction >=0.3.1.0 && <0.5,
        transformers >=0.5.2.0 && <0.6,
        type-errors >=0.2.0.0 && <0.3,
        type-errors-pretty >=0.0.0.0 && <0.1,
        unagi-chan >=0.4.0.0 && <0.5

    if impl(ghc <8.6)
        default-extensions: MonadFailDesugaring TypeInType

    if flag(dump-core)
        ghc-options:   -fplugin=DumpCore -fplugin-opt=DumpCore:core-html
        build-depends: dump-core >=0.1.3.2 && <0.2

    if impl(ghc <8.2.2)
        build-depends: unsupported-ghc-version >1 && <1

    if flag(error-messages)
        cpp-options: -DCABAL_SERIOUSLY_CMON_MATE

    else
        cpp-options: -DNO_ERROR_MESSAGES

test-suite polysemy-test
    type:               exitcode-stdio-1.0
    main-is:            Main.hs
    build-tool-depends: hspec-discover:hspec-discover >=2.0
    hs-source-dirs:     test
    other-modules:
        AlternativeSpec
        AsyncSpec
        BracketSpec
        DoctestSpec
        ErrorSpec
        FailSpec
        FinalSpec
        FixpointSpec
        FusionSpec
        HigherOrderSpec
        InspectorSpec
        InterceptSpec
        KnownRowSpec
        LawsSpec
        OutputSpec
        ThEffectSpec
        TypeErrors
        ViewSpec
        WriterSpec
        Paths_polysemy
        Build_doctests

    autogen-modules:    Build_doctests
    default-language:   Haskell2010
    default-extensions:
        DataKinds DeriveFunctor FlexibleContexts GADTs LambdaCase PolyKinds
        RankNTypes ScopedTypeVariables StandaloneDeriving TypeApplications
        TypeOperators TypeFamilies UnicodeSyntax

    ghc-options:        -threaded -rtsopts -with-rtsopts=-N
    build-depends:
        QuickCheck >=2.11.3 && <3,
        async >=2.2 && <3,
        base >=4.9 && <5,
        containers >=0.5 && <0.7,
        doctest >=0.16.0.1 && <0.17,
        first-class-families >=0.5.0.0 && <0.9,
        hspec >=2.6.0 && <3,
        inspection-testing >=0.4.2 && <0.5,
        mtl >=2.2.2 && <3,
        polysemy -any,
        stm ==2.*,
        syb ==0.7.*,
        template-haskell >=2.12.0.0 && <3,
        th-abstraction >=0.3.1.0 && <0.5,
        transformers >=0.5.2.0 && <0.6,
        type-errors >=0.2.0.0 && <0.3,
        type-errors-pretty >=0.0.0.0 && <0.1,
        unagi-chan >=0.4.0.0 && <0.5

    if impl(ghc <8.6)
        default-extensions: MonadFailDesugaring TypeInType

benchmark polysemy-bench
    type:               exitcode-stdio-1.0
    main-is:            countDown.hs
    hs-source-dirs:     bench
    other-modules:
        Poly
        Paths_polysemy

    default-language:   Haskell2010
    default-extensions:
        DataKinds DeriveFunctor FlexibleContexts GADTs LambdaCase PolyKinds
        RankNTypes ScopedTypeVariables StandaloneDeriving TypeApplications
        TypeOperators TypeFamilies UnicodeSyntax

    build-depends:
        QuickCheck >=2.11.3 && <3,
        async >=2.2 && <3,
        base >=4.9 && <5,
        containers >=0.5 && <0.7,
        criterion >=1.5.6.2 && <1.6,
        first-class-families >=0.5.0.0 && <0.9,
        free >=5.1.3 && <5.2,
        freer-simple >=1.2.1.1 && <1.3,
        mtl >=2.2.2 && <2.3,
        polysemy -any,
        stm ==2.*,
        syb ==0.7.*,
        template-haskell >=2.12.0.0 && <3,
        th-abstraction >=0.3.1.0 && <0.5,
        transformers >=0.5.2.0 && <0.6,
        type-errors >=0.2.0.0 && <0.3,
        type-errors-pretty >=0.0.0.0 && <0.1,
        unagi-chan >=0.4.0.0 && <0.5

    if impl(ghc <8.6)
        default-extensions: MonadFailDesugaring TypeInType