Safe Haskell | None |
---|---|
Language | Haskell2010 |
Most users should import Haxl.Core instead of importing this module directly.
- class Typeable f => StateKey (f :: * -> *) where
- data State f
- data StateStore
- stateGet :: forall r. StateKey r => StateStore -> Maybe (State r)
- stateSet :: forall f. StateKey f => State f -> StateStore -> StateStore
- stateEmpty :: StateStore
Documentation
class Typeable f => StateKey (f :: * -> *) where Source #
StateKey
maps one type to another type. A type that is an
instance of StateKey
can store and retrieve information from a
StateStore
.
getStateType :: Proxy f -> TypeRep Source #
We default this to typeOf1, but if f is itself a complex type that is already applied to some paramaters, we want to be able to use the same state by using typeOf2, etc
data StateStore Source #
The StateStore
maps a StateKey
to the State
for that type.
stateGet :: forall r. StateKey r => StateStore -> Maybe (State r) Source #
Retrieves a State
from the StateStore
container.
stateSet :: forall f. StateKey f => State f -> StateStore -> StateStore Source #
Inserts a State
in the StateStore
container.
stateEmpty :: StateStore Source #
A StateStore
with no entries.