# 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 CHANGELOG.md base (>=4.13 && <4.18), effectful-core (>1 && <2.2), primitive (>=0.7 && <0.8) [details] CC0-1.0 Russell Hernandez Ruiz qrpnxz@hyperlife.xyz effectful https://sr.ht/~qrpnxz/effectful-st/ https://todo.sr.ht/~qrpnxz/effectful-st head: git clone https://git.sr.ht/~qrpnxz/effectful-stthis: git clone https://git.sr.ht/~qrpnxz/effectful-st(tag 0.0.0.1) by qrpnxz at 2022-09-12T19:33:56Z NixOS:0.0.0.1 59 total (3 in the last 30 days) (no votes yet) [estimated by Bayesian average] λ λ λ Docs available Last success reported on 2022-09-12

## Readme for effectful-st-0.0.0.1

[back to package description]

# effectful-st

Version 0.0.0.1

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