TODO: remove `OptionM` after update stage0 see: https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/Do.20we.20still.20need.20OptionM.3F/near/279761084
12 lines
471 B
Text
12 lines
471 B
Text
partial def recurseM [Monad μ] (curr: α) (action: α -> μ (List α)) : μ PUnit := do
|
||
let children ← action curr
|
||
children.forM (recurseM · action)
|
||
|
||
def specificTraverseList : Option Unit := recurseM () (fun _ => some [])
|
||
|
||
partial def recurseM2 [Monad μ] (curr: α) (action: α -> μ (Array α)) : μ PUnit := do
|
||
let children ← action curr
|
||
children.forM (recurseM2 · action)
|
||
|
||
def specificTraverseArray : Option Unit :=
|
||
recurseM2 () (fun _ => some #[])
|