HORIZON HASKELLDocslts/ghc-9.14.xd82dee82026-10-12Search names, modules, packages, or :: a typeCtrl K

GHC 9.14.1 · lts/ghc-9.14.x · d82dee8 · 2026-10-12

Modulecapability-0.5.0.1Haskell2010

Capability.Source.Internal.Strategies

  • 6 types
  • Packagecapability-0.5.0.1
  • Exports6
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceStrategies.hs
newtypenewtype MonadReader (m :: Type -> Type) a
#

Derive HasSource from m's MonadReader instance.

Constructors

  • MonadReader (m a)
Instances8HasReader, HasSource, Monad, Functor, Applicative, MonadIO, …
  • MonadReader r m => HasReader tag r (MonadReader m)Defined in capability-0.5.0.1 · Capability.Reader.Internal.Strategies · orphan
  • MonadReader r m => HasSource tag r (MonadReader m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
  • Monad m => Monad (MonadReader m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
  • Functor m => Functor (MonadReader m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
  • Applicative m => Applicative (MonadReader m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
  • MonadIO m => MonadIO (MonadReader m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
  • PrimMonad m => PrimMonad (MonadReader m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
  • type PrimState (MonadReader m) = PrimState mDefined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
newtypenewtype ReadStatePure (m :: Type -> Type) a
#

Convert a pure state monad into a reader monad.

Pure meaning that the monad stack does not allow catching exceptions. Otherwise, an exception occurring in the action passed to local could cause the context to remain modified outside of the call to local. E.g.

local @tag (const r') (throw MyException)
`catch` \MyException -> ask @tag

returns r' instead of the previous value.

Note, that no MonadIO instance is provided, as this would allow catching exceptions.

See ReadState.

Constructors

  • ReadStatePure (m a)
Instances5HasReader, HasSource, Monad, Functor, Applicative
  • HasState tag r m => HasReader tag r (ReadStatePure m)Defined in capability-0.5.0.1 · Capability.Reader.Internal.Strategies · orphan
  • HasState tag r m => HasSource tag r (ReadStatePure m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
  • Monad m => Monad (ReadStatePure m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
  • Functor m => Functor (ReadStatePure m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
  • Applicative m => Applicative (ReadStatePure m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
newtypenewtype ReadState (m :: Type -> Type) a
#

Convert a state monad into a reader monad.

Use this if the monad stack allows catching exceptions.

See ReadStatePure.

Constructors

  • ReadState (m a)
Instances8HasReader, HasSource, Monad, Functor, Applicative, MonadIO, …
  • (HasState tag r m, MonadMask m) => HasReader tag r (ReadState m)Defined in capability-0.5.0.1 · Capability.Reader.Internal.Strategies · orphan
  • (HasState tag r m, MonadMask m) => HasSource tag r (ReadState m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
  • Monad m => Monad (ReadState m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
  • Functor m => Functor (ReadState m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
  • Applicative m => Applicative (ReadState m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
  • MonadIO m => MonadIO (ReadState m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
  • PrimMonad m => PrimMonad (ReadState m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
  • type PrimState (ReadState m) = PrimState mDefined in capability-0.5.0.1 · Capability.Source.Internal.Strategies
newtypenewtype MonadState (m :: Type -> Type) a
#

Derive HasState from m's MonadState instance.

Constructors

  • MonadState (m a)
Instances9HasSource, HasState, HasSink, Monad, Functor, Applicative, …
  • MonadState s m => HasSource tag s (MonadState m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies · orphan
  • MonadState s m => HasState tag s (MonadState m)Defined in capability-0.5.0.1 · Capability.State.Internal.Strategies · orphan
  • MonadState s m => HasSink tag s (MonadState m)Defined in capability-0.5.0.1 · Capability.Sink.Internal.Strategies · orphan
  • Monad m => Monad (MonadState m)Defined in capability-0.5.0.1 · Capability.State.Internal.Strategies.Common
  • Functor m => Functor (MonadState m)Defined in capability-0.5.0.1 · Capability.State.Internal.Strategies.Common
  • Applicative m => Applicative (MonadState m)Defined in capability-0.5.0.1 · Capability.State.Internal.Strategies.Common
  • MonadIO m => MonadIO (MonadState m)Defined in capability-0.5.0.1 · Capability.State.Internal.Strategies.Common
  • PrimMonad m => PrimMonad (MonadState m)Defined in capability-0.5.0.1 · Capability.State.Internal.Strategies.Common
  • type PrimState (MonadState m) = PrimState mDefined in capability-0.5.0.1 · Capability.State.Internal.Strategies.Common
newtypenewtype ReaderIORef (m :: k -> Type) (a :: k)
#

Derive a state monad from a reader over an IORef.

Example:

newtype MyState m a = MyState (ReaderT (IORef Int) m a)
  deriving (Functor, Applicative, Monad)
  deriving HasState "foo" Int via
    ReaderIORef (MonadReader (ReaderT (IORef Int) m))

See ReaderRef for a more generic strategy.

Constructors

  • ReaderIORef (m a)
Instances6HasSource, HasState, HasSink, Monad, Functor, Applicative
  • (HasSource tag (IORef s) m, MonadIO m) => HasSource tag s (ReaderIORef m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies · orphan
  • (HasReader tag (IORef s) m, MonadIO m) => HasState tag s (ReaderIORef m)Defined in capability-0.5.0.1 · Capability.State.Internal.Strategies · orphan
  • (HasSource tag (IORef s) m, MonadIO m) => HasSink tag s (ReaderIORef m)Defined in capability-0.5.0.1 · Capability.Sink.Internal.Strategies · orphan
  • Monad m => Monad (ReaderIORef m)Defined in capability-0.5.0.1 · Capability.State.Internal.Strategies.Common
  • Functor m => Functor (ReaderIORef m)Defined in capability-0.5.0.1 · Capability.State.Internal.Strategies.Common
  • Applicative m => Applicative (ReaderIORef m)Defined in capability-0.5.0.1 · Capability.State.Internal.Strategies.Common
newtypenewtype ReaderRef (m :: Type -> Type) a
#

Derive a state monad from a reader over a mutable reference.

Mutable references are available in a PrimMonad. The corresponding PrimState has to match the MCState of the reference. This constraint makes a stand-alone deriving clause necessary.

Example:

newtype MyState m a = MyState (ReaderT (IORef Int) m a)
  deriving (Functor, Applicative, Monad)
deriving via ReaderRef (MonadReader (ReaderT (IORef Int) m))
  instance (PrimMonad m, PrimState m ~ PrimState IO)
  => HasState "foo" Int (MyState m)

See ReaderIORef for a specialized version over IORef.

Constructors

  • ReaderRef (m a)
Instances9HasSource, HasState, HasSink, Monad, Functor, Applicative, …
  • (MutableRef ref, RefElement ref ~ s, HasSource tag ref m, PrimMonad m, PrimState m ~ MCState ref) => HasSource tag s (ReaderRef m)Defined in capability-0.5.0.1 · Capability.Source.Internal.Strategies · orphan
  • (MutableRef ref, RefElement ref ~ s, HasReader tag ref m, PrimMonad m, PrimState m ~ MCState ref) => HasState tag s (ReaderRef m)Defined in capability-0.5.0.1 · Capability.State.Internal.Strategies · orphan
  • (MutableRef ref, RefElement ref ~ s, HasSource tag ref m, PrimMonad m, PrimState m ~ MCState ref) => HasSink tag s (ReaderRef m)Defined in capability-0.5.0.1 · Capability.Sink.Internal.Strategies · orphan
  • Monad m => Monad (ReaderRef m)Defined in capability-0.5.0.1 · Capability.State.Internal.Strategies.Common
  • Functor m => Functor (ReaderRef m)Defined in capability-0.5.0.1 · Capability.State.Internal.Strategies.Common
  • Applicative m => Applicative (ReaderRef m)Defined in capability-0.5.0.1 · Capability.State.Internal.Strategies.Common
  • MonadIO m => MonadIO (ReaderRef m)Defined in capability-0.5.0.1 · Capability.State.Internal.Strategies.Common
  • PrimMonad m => PrimMonad (ReaderRef m)Defined in capability-0.5.0.1 · Capability.State.Internal.Strategies.Common
  • type PrimState (ReaderRef m) = PrimState mDefined in capability-0.5.0.1 · Capability.State.Internal.Strategies.Common

Orphan instances

9 instances