@[inline, reducible]
Equations
Instances For
Equations
- ShareCommon.Object.ptrEq a b = (ptrAddrUnsafe a == ptrAddrUnsafe b)
Instances For
@[inline, reducible]
Equations
Instances For
- Map : Type
- Set : Type
- mapFind? : s.Map → ShareCommon.Object → Option ShareCommon.Object
- mapInsert : s.Map → ShareCommon.Object → ShareCommon.Object → s.Map
- setFind? : s.Set → ShareCommon.Object → Option ShareCommon.Object
- setInsert : s.Set → ShareCommon.Object → s.Set
Instances For
@[inline, reducible]
Instances For
@[extern lean_sharecommon_eq]
@[extern lean_sharecommon_hash]
- mkMap : {α β : Type} → [inst : BEq α] → [inst_1 : Hashable α] → Nat → ShareCommon.StateFactoryBuilder.Map s α β
- mapFind? : {α β : Type} → [inst : BEq α] → [inst_1 : Hashable α] → ShareCommon.StateFactoryBuilder.Map s α β → α → Option β
- mapInsert : {α β : Type} → [inst : BEq α] → [inst_1 : Hashable α] → ShareCommon.StateFactoryBuilder.Map s α β → α → β → ShareCommon.StateFactoryBuilder.Map s α β
- mkSet : {α : Type} → [inst : BEq α] → [inst_1 : Hashable α] → Nat → ShareCommon.StateFactoryBuilder.Set s α
- setFind? : {α : Type} → [inst : BEq α] → [inst_1 : Hashable α] → ShareCommon.StateFactoryBuilder.Set s α → α → Option α
- setInsert : {α : Type} → [inst : BEq α] → [inst_1 : Hashable α] → ShareCommon.StateFactoryBuilder.Set s α → α → ShareCommon.StateFactoryBuilder.Set s α
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[implemented_by ShareCommon.StateFactory.mkImpl]
Equations
- ShareCommon.StateFactory.get = unsafeCast
Instances For
Internally State
is implemented as a pair ObjectMap
and ObjectSet
@[inline, reducible]
Equations
Instances For
Equations
Instances For
@[implemented_by ShareCommon.mkStateImpl]
Equations
- ShareCommon.instInhabitedState = { default := ShareCommon.State.mk σ }
@[extern lean_state_sharecommon]
def
ShareCommon.State.shareCommon
{α : Type u_1}
{σ : ShareCommon.StateFactory}
(s : ShareCommon.State σ)
(a : α)
:
α × ShareCommon.State σ
Equations
- ShareCommon.State.shareCommon s a = (a, s)
Instances For
@[inline, reducible]
abbrev
withShareCommon
{m : Type u_1 → Type u_2}
[self : MonadShareCommon m]
{α : Type u_1}
:
α → m α
Instances For
@[inline, reducible]
Equations
Instances For
@[inline, reducible]
abbrev
ShareCommonT
(σ : ShareCommon.StateFactory)
(m : Type u → Type v)
(α : Type u)
:
Type (max u v)
Equations
- ShareCommonT σ m = StateT (ShareCommon.State σ) m
Instances For
@[specialize #[]]
def
ShareCommonT.withShareCommon
{m : Type u_1 → Type u_2}
{α : Type u_1}
{σ : ShareCommon.StateFactory}
[Monad m]
(a : α)
:
ShareCommonT σ m α
Equations
- ShareCommonT.withShareCommon a = modifyGet fun s => ShareCommon.State.shareCommon s a
Instances For
instance
ShareCommonT.monadShareCommon
{m : Type u_1 → Type u_2}
{σ : ShareCommon.StateFactory}
[Monad m]
:
MonadShareCommon (ShareCommonT σ m)
Equations
- ShareCommonT.monadShareCommon = { withShareCommon := fun {α} => ShareCommonT.withShareCommon }
@[inline]
def
ShareCommonT.run
{m : Type u_1 → Type u_2}
{σ : ShareCommon.StateFactory}
{α : Type u_1}
[Monad m]
(x : ShareCommonT σ m α)
:
m α
Equations
- ShareCommonT.run x = StateT.run' x default
Instances For
@[inline]