Documentation

Init.ShareCommon

@[inline, reducible]
Instances For
    @[inline, reducible]
    Instances For
      Instances For
        @[inline, reducible]
        Instances For
          @[extern lean_sharecommon_eq]
          @[extern lean_sharecommon_hash]
          Instances For
            @[implemented_by ShareCommon.StateFactory.mkImpl]

            Internally State is implemented as a pair ObjectMap and ObjectSet

            @[inline, reducible]
            Instances For
              @[implemented_by ShareCommon.mkStateImpl]
              @[extern lean_state_sharecommon]
              Instances For
                class MonadShareCommon (m : Type u → Type v) :
                Type (max (u + 1) v)
                • withShareCommon : {α : Type u} → αm α
                Instances
                  @[inline, reducible]
                  abbrev withShareCommon {m : Type u_1 → Type u_2} [self : MonadShareCommon m] {α : Type u_1} :
                  αm α
                  Instances For
                    @[inline, reducible]
                    abbrev shareCommonM {m : Type u_1 → Type u_2} {α : Type u_1} [MonadShareCommon m] (a : α) :
                    m α
                    Instances For
                      @[inline, reducible]
                      abbrev ShareCommonT (σ : ShareCommon.StateFactory) (m : Type u → Type v) (α : Type u) :
                      Type (max u v)
                      Instances For
                        @[inline, reducible]
                        abbrev ShareCommonM (σ : ShareCommon.StateFactory) (α : Type u_1) :
                        Type u_1
                        Instances For
                          @[specialize #[]]
                          def ShareCommonT.withShareCommon {m : Type u_1 → Type u_2} {α : Type u_1} {σ : ShareCommon.StateFactory} [Monad m] (a : α) :
                          ShareCommonT σ m α
                          Instances For
                            @[inline]
                            def ShareCommonT.run {m : Type u_1 → Type u_2} {σ : ShareCommon.StateFactory} {α : Type u_1} [Monad m] (x : ShareCommonT σ m α) :
                            m α
                            Instances For
                              @[inline]
                              def ShareCommonM.run {σ : ShareCommon.StateFactory} {α : Type u_1} (x : ShareCommonM σ α) :
                              α
                              Instances For