Haskell Hierarchical Libraries (base package)ContentsIndex
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