∀ {β α : Type w} {m : Type w → Type w'} {n : Type x → Type x'} [inst : Monad m] [inst_1 : Monad n]
  [inst_2 : Std.Iterator α m β] [i : Std.IteratorLoop α m n],
  (∀ (lift : (γ : Type w) → (δ : Type x) → (γ → n δ) → m γ → n δ) [Std.Internal.LawfulMonadLiftBindFunction lift]
      (γ : Type x) (it : Std.IterM m β) (init : γ) (Pl : β → γ → ForInStep γ → Prop),
      Std.IteratorLoop.WellFounded α m Pl →
        ∀ (f : (b : β) → it.IsPlausibleIndirectOutput b → (c : γ) → n (Subtype (Pl b c))),
          Std.IteratorLoop.forIn lift γ Pl it init f = Std.IteratorLoop.forIn lift γ Pl it init f) →
    Std.LawfulIteratorLoop α m n