packages feed

heftia-effects-0.1.0.0: heftia-effects.cabal

cabal-version:      2.4
name:               heftia-effects
version:            0.1.0.0

-- A short (one-line) description of the package.
synopsis: Handlers for standard effects using Heftia.

-- A longer description of the package.
description:
    This library provides interpreters based
    on [Heftia](https://hackage.haskell.org/package/heftia) for the standard effect classes
    compliant with [CEPs](https://github.com/sayo-hs/classy-effects/blob/master/CEPs/README.md),
    offered by
    the [classy-effects](https://hackage.haskell.org/package/classy-effects) package.

-- A URL where users can report bugs.
bug-reports: https://github.com/sayo-hs/heftia

-- The license under which the package is released.
license:            MPL-2.0
license-file:       LICENSE
author:             Yamada Ryo <ymdfield@outlook.jp>
maintainer:         Yamada Ryo <ymdfield@outlook.jp>

-- A copyright notice.
copyright: 2023 Yamada Ryo
category: Control, Effect, Monads

extra-source-files:
    ChangeLog.md
    NOTICE
    README.md

tested-with:
    GHC == 9.2.8

source-repository head
    type: git
    location: https://github.com/sayo-hs/heftia
    tag: v0.1.0
    subdir: heftia-effects

common common-base
    ghc-options:      -Wall
    default-language: GHC2021

    default-extensions:
        LambdaCase,
        DerivingStrategies,
        DataKinds,
        TypeFamilies,
        BlockArguments,
        FunctionalDependencies,
        RecordWildCards,
        DefaultSignatures,
        PatternSynonyms

library
    import: common-base

    exposed-modules:
        Control.Effect.Handler.Heftia.Reader
        Control.Effect.Handler.Heftia.Writer
        Control.Effect.Handler.Heftia.State
        Control.Effect.Handler.Heftia.Except
        Control.Effect.Handler.Heftia.Provider

    -- Modules included in this executable, other than Main.
    -- other-modules:

    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:
    build-depends:
        base                          ^>= 4.16.4.0,
        heftia                        ^>= 0.1,
        classy-effects                ^>= 0.1,
        mtl                           ^>= 2.2.2,
        transformers                  ^>= 0.5.6,
        extensible                    ^>= 0.9,

    hs-source-dirs:   src

test-suite test
    import: common-base

    main-is: Driver.hs
    hs-source-dirs: test
    build-depends:
        heftia-effects,
        classy-effects,
        heftia,
        base,
        tasty                         ^>= 1.4,
        tasty-hunit                   ^>= 0.10,

    build-tool-depends:
        tasty-discover:tasty-discover

    type: exitcode-stdio-1.0


executable Teletype
    import: common-base

    main-is: Main.hs
    hs-source-dirs: Example/Teletype
    build-depends:
        classy-effects,
        heftia,
        heftia-effects,
        base,

executable Logging
    import: common-base

    main-is: Main.hs
    hs-source-dirs: Example/Logging
    ghc-options: -Wall -fplugin GHC.TypeLits.KnownNat.Solver
    build-depends:
        classy-effects,
        heftia,
        heftia-effects,
        base,
        text ^>= 1.2.5,
        time ^>= 1.11.1,
        loglevel ^>= 0.1.0,
        extra ^>= 1.7.14,
        ghc-typelits-knownnat ^>= 0.7,

executable Continuation
    import: common-base

    main-is: Main.hs
    hs-source-dirs: Example/Continuation
    build-depends:
        classy-effects,
        heftia,
        heftia-effects,
        base,

executable Writer
    import: common-base

    main-is: Main.hs
    hs-source-dirs: Example/Writer
    build-depends:
        classy-effects,
        heftia,
        heftia-effects,
        base,