Recall that StateRefT
is a macro that infers ω
from the m
.
@[inline]
def
StateRefT'.run
{ω σ : Type}
{m : Type → Type}
[Monad m]
[MonadLiftT (ST ω) m]
{α : Type}
(x : StateRefT' ω σ m α)
(s : σ)
:
m (α × σ)
Instances For
@[inline]
def
StateRefT'.run'
{ω σ : Type}
{m : Type → Type}
[Monad m]
[MonadLiftT (ST ω) m]
{α : Type}
(x : StateRefT' ω σ m α)
(s : σ)
:
m α
Instances For
Equations
- StateRefT'.instMonad = inferInstanceAs (Monad (ReaderT (ST.Ref ω σ) m))
instance
StateRefT'.instMonadFunctor
{ω : Type}
(σ : Type)
(m : Type → Type)
:
MonadFunctor m (StateRefT' ω σ m)
instance
StateRefT'.instAlternativeOfMonad
{ω σ : Type}
{m : Type → Type}
[Alternative m]
[Monad m]
:
Alternative (StateRefT' ω σ m)
Equations
- StateRefT'.instAlternativeOfMonad = inferInstanceAs (Alternative (ReaderT (ST.Ref ω σ) m))
@[inline]
def
StateRefT'.set
{ω σ : Type}
{m : Type → Type}
[MonadLiftT (ST ω) m]
(s : σ)
:
StateRefT' ω σ m PUnit
Equations
- StateRefT'.set s ref = ref.set s
Instances For
@[inline]
def
StateRefT'.modifyGet
{ω σ : Type}
{m : Type → Type}
{α : Type}
[MonadLiftT (ST ω) m]
(f : σ → α × σ)
:
StateRefT' ω σ m α
Instances For
instance
StateRefT'.instMonadStateOfOfMonadLiftTST
{ω σ : Type}
{m : Type → Type}
[MonadLiftT (ST ω) m]
:
MonadStateOf σ (StateRefT' ω σ m)
@[always_inline]
instance
StateRefT'.instMonadExceptOf
{ω σ : Type}
{m : Type → Type}
(ε : Type u_1)
[MonadExceptOf ε m]
:
MonadExceptOf ε (StateRefT' ω σ m)
instance
instMonadControlStateRefT'
(ω σ : Type)
(m : Type → Type)
:
MonadControl m (StateRefT' ω σ m)
Equations
- instMonadControlStateRefT' ω σ m = inferInstanceAs (MonadControl m (ReaderT (ST.Ref ω σ) m))
instance
instMonadFinallyStateRefT'
{m : Type → Type}
{ω σ : Type}
[MonadFinally m]
:
MonadFinally (StateRefT' ω σ m)