Safe Haskell | None |
---|---|
Language | Haskell2010 |
This is an approximate re-implementation of Control.Monad.ST and Data.STRef using open witnesses.
- type ST s = StateT (WitnessDict (OpenWitness s)) (OW s)
- runST :: (forall s. ST s a) -> a
- fixST :: (a -> ST s a) -> ST s a
- stToOW :: ST s a -> OW s a
- data RealWorld
- stToIO :: ST RealWorld a -> IO a
- type STRef = OpenWitness
- newSTRef :: a -> ST s (STRef s a)
- readSTRef :: STRef s a -> ST s a
- writeSTRef :: forall s a. STRef s a -> a -> ST s ()
- modifySTRef :: forall s a. STRef s a -> (a -> a) -> ST s ()
The ST
Monad
type ST s = StateT (WitnessDict (OpenWitness s)) (OW s) Source
Converting ST
to OW
and IO
STRefs
type STRef = OpenWitness Source
writeSTRef :: forall s a. STRef s a -> a -> ST s () Source
modifySTRef :: forall s a. STRef s a -> (a -> a) -> ST s () Source