heftia-0.2.0.0: heftia.cabal
cabal-version: 2.4
name: heftia
version: 0.2.0.0
-- A short (one-line) description of the package.
synopsis: higher-order effects done right
-- A longer description of the package.
description:
Heftia is a higher-order effects version of Freer.
.
This library provides "[continuation-based semantics](https://github.com/lexi-lambda/eff/blob/master/notes/semantics-zoo.md)"
for higher-order effects, the same as [lexi-lambda's eff](https://github.com/lexi-lambda/eff).
Instead of using the @IO@ monad to implement delimited continuations for effects,
Heftia internally uses @Freer@ monad.
.
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 Hefty 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-2024 Yamada Ryo
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.2.0
subdir: heftia
library
exposed-modules:
Control.Effect.Hefty
Control.Effect.Free
Control.Effect.ExtensibleFinal
Control.Effect.ExtensibleChurch
Control.Effect.ExtensibleTree
Control.Effect.ExtensibleFinalA
Control.Effect.ExtensibleTreeA
Control.Effect.ExtensibleFastA
Control.Hefty
Control.Freer
Control.Freer.Final
Control.Monad.Freer
Control.Monad.Freer.Church
Control.Monad.Freer.Tree
Data.Hefty.Union
Data.Hefty.Extensible
Data.Free.Sum
reexported-modules:
Data.Effect,
Data.Effect.TH,
Data.Effect.Tag,
Data.Effect.Key,
Data.Effect.Key.TH,
Data.Effect.HFunctor,
Data.Effect.HFunctor.HCont,
Data.Effect.HFunctor.TH,
Control.Effect,
Control.Effect.Tag,
Control.Effect.Key,
-- 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,
data-effects ^>= 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,
singletons-base ^>= 3.1,
singletons-th ^>= 3.1,
unliftio ^>= 0.2,
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