This module provides a notion of (Splittable) State that is compatible with any Par monad.
This module provides instances that make StateT-transformed monads into valid Par monads.
Common examples for applications of
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
Also, it is possible to simply duplicate the state at all fork points,
enabling thread local copies of the state.
The limitation of this approach is that the splitting method is
fixed, and the same at all