haxl- A Haskell library for efficient, concurrent, and concise data access.

Safe HaskellNone



Most users should import Haxl.Core instead of importing this module directly.



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.

Minimal complete definition


Associated Types

data State f Source #


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

Typeable tag => StateKey (ConcurrentIOReq tag) Source # 
Instance details

Defined in Haxl.DataSource.ConcurrentIO

Associated Types

data State (ConcurrentIOReq tag) :: Type Source #

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.