GHC.ST

| Haskell Hierarchical Libraries (base package) | Contents | Index
GHC.ST |
Portability | non-portable (GHC Extensions)
Stability | internal
Maintainer | cvs-ghc@haskell.org
Description
The `ST` Monad.
Synopsis
newtype ST s a = ST (STRep s a)
type STRep s a = State# s -> (#State# s, a#)
data STret s a = STret (State# s) a
liftST :: ST s a -> State# s -> STret s a
unsafeInterleaveST :: ST s a -> ST s a
fixST :: (a -> ST s a) -> ST s a
runST :: (forall s . ST s a) -> a
runSTRep :: (forall s . STRep s a) -> a
Documentation
newtype ST s a
The strict state-transformer monad. A computation of type ``ST` s a` transforms an internal state indexed by `s`, and returns a value of type `a`. The `s` parameter is either an unstantiated type variable (inside invocations of `runST`), or `RealWorld` (inside invocations of `stToIO`). It serves to keep the internal states of different invocations of `runST` separate from each other and from invocations of `stToIO`.
Constructors
ST (STRep s a) |
Instances
MonadFix (ST s)
(Typeable a, Typeable b) => Typeable (ST a b)
MArray (STArray s) e (ST s)
MArray (STUArray s) Bool (ST s)
MArray (STUArray s) Char (ST s)
MArray (STUArray s) Int (ST s)
MArray (STUArray s) Word (ST s)
MArray (STUArray s) (Ptr a) (ST s)
MArray (STUArray s) (FunPtr a) (ST s)
MArray (STUArray s) Float (ST s)
MArray (STUArray s) Double (ST s)
MArray (STUArray s) (StablePtr a) (ST s)
MArray (STUArray s) Int8 (ST s)
MArray (STUArray s) Int16 (ST s)
MArray (STUArray s) Int32 (ST s)
MArray (STUArray s) Int64 (ST s)
MArray (STUArray s) Word8 (ST s)
MArray (STUArray s) Word16 (ST s)
MArray (STUArray s) Word32 (ST s)
MArray (STUArray s) Word64 (ST s)
Functor (ST s)
Monad (ST s)
Show (ST s a)
type STRep s a = State# s -> (#State# s, a#)
data STret s a
Constructors
STret (State# s) a |
liftST :: ST s a -> State# s -> STret s a
unsafeInterleaveST :: ST s a -> ST s a
fixST :: (a -> ST s a) -> ST s a
Allow the result of a state transformer computation to be used (lazily) inside the computation. Note that if `f` is strict, ``fixST` f = _|_`.
runST :: (forall s . ST s a) -> a
Return the value computed by a state transformer computation. The `forall` ensures that the internal state used by the `ST` computation is inaccessible to the rest of the program.
runSTRep :: (forall s . STRep s a) -> a
Produced by Haddock version 0.6