module Bluefin.Capability.Ask
  ( -- | 'Ask' is Bluefin's version of the
    -- "Control.Monad.Trans.Reader" monad.  'local' allows you to
    -- locally override the @ask@ed value in a well-scoped way.  The
    -- original value will be restored when you exit the @local@ block
    -- regardless of whether the exit was normal or via an exception.

    -- * Capability
    Ask,

    -- * Handlers
    runAsk,

    -- * Effectful operations
    ask,
    asks,
    local,
  )
where

import Bluefin.Internal