packages feed

heftia-0.1.0.0: heftia.cabal

cabal-version:      2.4
name:               heftia
version:            0.1.0.0

-- A short (one-line) description of the package.
synopsis: Higher-order version of Freer.

-- A longer description of the package.
description:
    Heftia, a composition of hefty trees and co-Yoneda, is a higher-order
    effects version of Freer.
    .
    The paper
    .
    * Casper Bach Poulsen and Cas van der Rest. 2023. Hefty Algebras: Modular
    Elaboration of Higher-Order Algebraic Effects. Proc. ACM Program. Lang. 7,
    POPL, Article 62 (January 2023), 31 pages. <https://doi.org/10.1145/3571255>
    .
    inspires this library.
    Hefty trees, proposed by the above paper, are extensions of free monads,
    allowing for a straightforward treatment of higher-order effects.
    .
    This library provides Heftia monads and Freer monads, encoded into data
    types in several ways to enable tuning in pursuit of high performance.
    .

-- 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,
    2023 Casper Bach Poulsen and Cas van der Rest
category: Control, 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

library
    exposed-modules:
        Control.Freer
        Control.Freer.Trans
        Control.Heftia
        Control.Heftia.Trans
        Control.Monad.Trans.Freer
        Control.Monad.Trans.Freer.Tree
        Control.Monad.Trans.Freer.Church
        Control.Monad.Trans.Heftia
        Control.Monad.Trans.Heftia.Tree
        Control.Monad.Trans.Heftia.Church
        Control.Monad.Trans.Hefty
        Control.Effect.Freer
        Control.Effect.Heftia
        Data.Free.Union
        Data.Free.Extensible
        Data.Free.Sum
        Data.Hefty.Union
        Data.Hefty.Extensible
        Data.Hefty.Sum

    -- 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,
        classy-effects-base           ^>= 0.1,
        mtl ^>= 2.2.2,
        free ^>= 5.2,
        kan-extensions ^>= 5.2.5,
        constraints ^>= 0.13.4,
        transformers-base ^>= 0.4.6,
        transformers ^>= 0.5.6,
        extensible ^>= 0.9,
        membership == 0.0.1,

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

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


test-suite test
    main-is: Driver.hs
    hs-source-dirs: test
    build-depends:
        heftia,
        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,
        PatternSynonyms