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.State.Internal.Strategies.Common

  • 3 types
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