effectful-st: `ST`-style mutation for `effectful`.

[ effectful, library ] [ Propose Tags ]

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.


[Skip to Readme]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.0.0.0, 0.0.0.1
Change log CHANGELOG.md
Dependencies base (>=4.13 && <4.18), effectful-core (>1 && <2.2), primitive (>=0.7 && <0.8) [details]
License CC0-1.0
Author Russell Hernandez Ruiz
Maintainer qrpnxz@hyperlife.xyz
Category effectful
Home page https://sr.ht/~qrpnxz/effectful-st/
Bug tracker https://todo.sr.ht/~qrpnxz/effectful-st
Source repo head: git clone https://git.sr.ht/~qrpnxz/effectful-st
this: git clone https://git.sr.ht/~qrpnxz/effectful-st(tag 0.0.0.0)
Uploaded by qrpnxz at 2022-09-06T22:46:52Z
Distributions
Downloads 115 total (9 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2022-09-06 [all 1 reports]

Readme for effectful-st-0.0.0.0

[back to package description]

effectful-st

Version 0.0.0.0

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.

This project follows the Haskell Package Versioning Policy.

Each contributor waives their Copyright and Related Rights to this work according to CC0-1.0.

Patent

Each contributor licenses you to do everything with this work that would otherwise infringe any patent claims they can license or become able to license.