# `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`][`ST`] to provide a safe way to run the effect purely. This project follows the [Haskell Package Versioning Policy][PVP]. [`ST`]: https://hackage.haskell.org/package/base/docs/Control-Monad-ST.html [`Prim`]: https://hackage.haskell.org/package/effectful-core/docs/Effectful-Prim.html [`effectful`]: https://hackage.haskell.org/package/effectful-core [`PrimMonad`]: https://hackage.haskell.org/package/primitive/docs/Control-Monad-Primitive.html#t:PrimMonad [PVP]: https://pvp.haskell.org/ ## Copyright Each contributor waives their Copyright and Related Rights to this work according to [CC0-1.0]. [CC0-1.0]: https://creativecommons.org/publicdomain/zero/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.