bluefin-0.7.0.1: The Bluefin effect system
Safe HaskellSafe-Inferred
LanguageHaskell2010

Bluefin.State

Description

This is an old interface and will be deprecated in the future. You are encouraged to use Bluefin.Capability.Modify instead.

Synopsis

Handle

data State s (e :: Effects) #

Instances

Instances details
e <: es => OneWayCoercible (State s e :: Type) (State s es :: Type) 
Instance details

Defined in Bluefin.Internal

Methods

oneWayCoercibleImpl :: OneWayCoercibleD (State s e) (State s es) #

Handle (State s) 
Instance details

Defined in Bluefin.Internal

Methods

handleImpl :: HandleD (State s) #

CloneableHandle (State s) 
Instance details

Defined in Bluefin.Internal.CloneableHandle

Methods

cloneableHandleImpl :: CloneableHandleD (State s)

Handlers

evalState :: forall s (es :: Effects) a. s -> (forall (e :: Effects). State s e -> Eff (e :& es) a) -> Eff es a #

runState :: forall s (es :: Effects) a. s -> (forall (e :: Effects). State s e -> Eff (e :& es) a) -> Eff es (a, s) #

withState :: forall s (es :: Effects) a. s -> (forall (e :: Effects). State s e -> Eff (e :& es) (s -> a)) -> Eff es a #

Effectful operations

get :: forall (e :: Effects) (es :: Effects) s. e <: es => State s e -> Eff es s #

put :: forall (e :: Effects) (es :: Effects) s. e <: es => State s e -> s -> Eff es () #

modify :: forall (e :: Effects) (es :: Effects) s. e <: es => State s e -> (s -> s) -> Eff es () #