Safe Haskell | Safe-Infered |
---|

This module provides a notion of (Splittable) State that is compatible with any Par monad.

- class SplittableState a where
- splitState :: a -> (a, a)

# Documentation

class SplittableState a where

A type in `SplittableState`

is meant to be added as to a Par monad
using StateT. It works like any other state except at `fork`

points, where the runtime system splits the state using `splitState`

.

Common examples for applications of `SplittableState`

would
include (1) routing a splittable random number generator through
a parallel computation, and (2) keeping a tree-index that locates
the current computation within the binary tree of `fork`

s.

splitState :: a -> (a, a)

RandomGen g => SplittableState g | Trivial instance. |

SplittableState Pedigree |