Control.Monad.ST
- Package
- purescript-st
- Repository
- purescript/purescript-st
#ST Source
data ST :: Type -> EffectThe ST effect represents local mutation, i.e. mutation which does not
"escape" into the surrounding computation.
An ST computation is parameterized by a phantom type which is used to
restrict the set of reference cells it is allowed to access.
The runST function can be used to handle the ST effect.
#modifySTRef Source
modifySTRef :: forall r h a. STRef h a -> (a -> a) -> Eff (st :: ST h | r) aModify the value of a mutable reference by applying a function to the current value.
#writeSTRef Source
writeSTRef :: forall r h a. STRef h a -> a -> Eff (st :: ST h | r) aSet the value of a mutable reference.
#runST Source
runST :: forall r a. (forall h. Eff (st :: ST h | r) a) -> Eff r aRun an ST computation.
Note: the type of runST uses a rank-2 type to constrain the phantom
type h, such that the computation must not leak any mutable references
to the surrounding computation.
It may cause problems to apply this function using the $ operator. The
recommended approach is to use parentheses instead.
#pureST Source
pureST :: forall a. (forall h. Eff (st :: ST h) a) -> aA convenience function which combines runST with runPure, which can be
used when the only required effect is ST.
Note: since this function has a rank-2 type, it may cause problems to apply
this function using the $ operator. The recommended approach is to use
parentheses instead.
- Modules
- Control.
Monad. ST