Duplicate a handle in the parent region.
A handle to a finalizer that allows you to duplicate it to a parent region using "dup".
A mutable reference in the IO monad.
A class of IO-based monads supporting an extra operation liftControlIO, enabling conrol operations on IO to be lifted into the monad.
Classifies IO-like monads, enabling IO actions to be lifted into the monad.
A finalizer paired with its reference count which defines how many times it has been registered in some region.
A monad transformer in which scarce resources can be opened.
Purely functional mutable state threads.
Mutable array in state thread S containing values of type A.
Mutable variable in state thread S containing a value of type A.
Accumulates an integer-associated list into an immutable array.
Accumulates an integer-associated list into an immutable array.
Duplicates a handle to its parent region.
Duplicates a handle to its parent region.
Allows the result of a state transformer computation to be used lazily inside the computation.
Allows the result of a state transformer computation to be used lazily inside the computation.
Allocates a fresh mutable array.
Allocates a fresh mutable array.
Allocates a fresh mutable reference.
Allocates a fresh mutable reference.
Register a finalizer in the current region.
Register a finalizer in the current region. When the region terminates, all registered finalizers will be performed if they're not duplicated to a parent region.
Put a value in a state thread
Put a value in a state thread
Execute a region inside its parent region P.
Execute a region inside its parent region P. All resources which have been opened in the given region and which haven't been duplicated using "dup", will be closed on exit from this function whether by normal termination or by raising an exception. Also all resources which have been duplicated to this region from a child region are closed on exit if they haven't been duplicated themselves. The Forall quantifier prevents resources from being returned by this function.
Run a state thread
Run a state thread
Equality for STRefs is reference equality
Equality for STRefs is reference equality
Throw the given error in the IO monad.
Throw the given error in the IO monad.