bluefin-0.10.0.0: The Bluefin effect system
Safe HaskellNone
LanguageHaskell2010

Bluefin.Capability.Modify

Synopsis

Capability

data Modify s (e :: Effects) #

Instances

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

Defined in Bluefin.Internal

Methods

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

Handle (Modify s) 
Instance details

Defined in Bluefin.Internal

Methods

handleImpl :: HandleD (Modify s) #

CloneableHandle (Modify s) 
Instance details

Defined in Bluefin.Internal.CloneableHandle

Methods

cloneableHandleImpl :: CloneableHandleD (Modify s)

Handlers

evalModify :: forall s (es :: Effects) a. s -> (forall (e :: Effects). Modify s e -> Eff (e :& es) a) -> Eff es a #

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

withModify :: forall s (es :: Effects) a. s -> (forall (e :: Effects). Modify s e -> Eff (e :& es) (s -> a)) -> Eff es a #

Effectful operations

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

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

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