whileM #
whileM f a iterates f : α → m (α ⊕ β), recursing on .inl and terminating on
.inr. The public unfolding lemma whileM_eq_of_monadTail, which requires a
Lean.Order.MonadTail m instance, lives in Init.Internal.Order.While to keep this
module's import closure small.
Loop type backing repeat/while/repeat ... until #
The parsers and elaborators for repeat, while, and repeat ... until live in
Lean.Parser.Do and Lean.Elab.BuiltinDo.Repeat. This module only provides the
Loop type (and ForIn instance) that those elaborators expand to.