bluefin-0.7.0.1: The Bluefin effect system
Safe HaskellNone
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 () #