lean4-htt/tests/lean/run/deep1.lean
Leonardo de Moura 9a5f239513 refactor: remove Monad Option and Alternative Option
We should use `OptionM` instead.
`Option` still implements `Functor` and `OrElse`.

cc @Kha
2021-03-20 18:25:25 -07:00

12 lines
473 B
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

partial def recurseM [Monad μ] (curr: α) (action: α -> μ (List α)) : μ PUnit := do
let children ← action curr
children.forM (recurseM · action)
def specificTraverseList : OptionM Unit := recurseM () (fun _ => some [])
partial def recurseM2 [Monad μ] (curr: α) (action: α -> μ (Array α)) : μ PUnit := do
let children ← action curr
children.forM (recurseM2 · action)
def specificTraverseArray : OptionM Unit :=
recurseM2 () (fun _ => some #[])