effectful-st-0.0.0.0: effectful-st.cabal
cabal-version: 2.4
name: effectful-st
version: 0.0.0.0
license: CC0-1.0
license-file: CC0-1.0.txt
author: Russell Hernandez Ruiz
maintainer: qrpnxz@hyperlife.xyz
stability: stable
homepage: https://sr.ht/~qrpnxz/effectful-st/
bug-reports: https://todo.sr.ht/~qrpnxz/effectful-st
synopsis: `ST`-style mutation for `effectful`.
description:
An `ST`-style alternative to the `Prim` effect in `effectful` that
allows safely running scoped state transformations without `IOE`.
.
The `Prim` effect allows the use of `PrimMonad` on `Eff` without
allowing arbitrary `IO`. However, there is no safe way to run the
effect without introducing the `IOE` effect because `Prim` has no
way of delimiting the scope of the mutation to `runPrim`. In other
words, `Prim` is effectively acting merely as a restricted form of
`IOE` that only allows `PrimMonad`.
.
`STE` from this package on the other hand borrows the quantification
trick from `Control.Monad.ST` to provide a safe way to run the effect
purely.
category: effectful
extra-source-files: README.md
extra-source-files: CHANGELOG.md
source-repository head
type: git
location: https://git.sr.ht/~qrpnxz/effectful-st
source-repository this
type: git
location: https://git.sr.ht/~qrpnxz/effectful-st
tag: 0.0.0.0
library
hs-source-dirs: src
exposed-modules:
Effectful.ST
build-depends:
base >=4.13 && <4.18
, effectful-core >1 && <2.2
, primitive >=0.7 && <0.8
default-language: Haskell2010
ghc-options:
-Wall
-Wcompat
-Widentities
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wpartial-fields
-Wredundant-constraints
ghc-options:
-Wno-redundant-constraints
-Wno-unticked-promoted-constructors