| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Bluefin.Capability.AskCapability
Description
AskCapability is like Ask, generalized to
work for arbitrary Handles. localCapability
locally overrides the value of a capability in a well-scoped way. The
original capability will be restored when you exit the localCapability
block regardless of whether the exit was normal or via an
exception.
AskCapability supports functionality similiar to effectful's
interpose
and polysemy's
intercept,
that is, locally augmenting an effect with new behaviors. If you
want to do the same in Bluefin you may want to start with
Bluefin.GadtEffect..interpose
Synopsis
- type AskCapability = HandleReader
- runAskCapability :: forall (e1 :: Effects) (es :: Effects) h r. (e1 <: es, Handle h) => h e1 -> (forall (e :: Effects). HandleReader h e -> Eff (e :& es) r) -> Eff es r
- askCapability :: forall (e :: Effects) (es :: Effects) h. (e <: es, Handle h) => HandleReader h e -> Eff es (h es)
- asksCapability :: forall (e1 :: Effects) (es :: Effects) h r. (e1 <: es, Handle h) => AskCapability h e1 -> (forall (e :: Effects). h e -> Eff (e :& es) r) -> Eff es r
- localCapability :: forall (e :: Effects) (es :: Effects) h r. (e <: es, Handle h) => AskCapability h e -> (h es -> h es) -> Eff es r -> Eff es r