packages feed

classy-effects-0.1.0.0: classy-effects.cabal

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

-- A short (one-line) description of the package.
synopsis: An interface for a handler-independent, typeclass-based effect system.

-- A longer description of the package.
description:
    This library provides definitions for CEPs (classy-effects protocols) to standardize and unify
    the definition of effects in Haskell in a backend-library-agnostic manner. It also includes
    several standard effect definitions defined in compliance with CEPs, and Template Haskell
    functions to automatically make type classes conform to CEPs as effect classes.

    Please refer
    to [CEPs](https://github.com/sayo-hs/classy-effects/blob/master/CEPs/README.md) for details.

    The Template Haskell functions are re-exported
    from the [classy-effects-th](https://hackage.haskell.org/package/classy-effects-th) package,
    while the fundamental definitions are re-exported
    from the [classy-effects-base](https://hackage.haskell.org/package/classy-effects-base)
    package.

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

-- 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

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/classy-effects
    tag: v0.1.0
    subdir: classy-effects

library
    exposed-modules:
        Control.Effect.Class.Reader
        Control.Effect.Class.Writer
        Control.Effect.Class.State
        Control.Effect.Class.Except
        Control.Effect.Class.Accum
        Control.Effect.Class.Coroutine
        Control.Effect.Class.Input
        Control.Effect.Class.Output
        Control.Effect.Class.Provider

    reexported-modules:
        Control.Effect.Class,
        Control.Effect.Class.Machinery.HFunctor,
        Control.Effect.Class.Machinery.TH,
        Data.Effect.Class.TH,
        Data.Effect.Class.TH.HFunctor,

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

    -- LANGUAGE extensions used by modules in this package.
    -- other-extensions:
    build-depends:
        base                          ^>= 4.16.4.0,
        classy-effects-base           ^>= 0.1,
        classy-effects-th             ^>= 0.1,

    hs-source-dirs:   src
    ghc-options:      -Wall
    default-language: GHC2021

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

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

    type: exitcode-stdio-1.0

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

    default-language: GHC2021

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