Zulip Chat Archive
Stream: general
Topic: pattern match for `Prod`
Asei Inoue (Sep 27 2025 at 10:42):
How to resolve this error?
import Lean
inductive BinTree (α : Type) where
| empty
| node (val : α) (left right : BinTree α)
deriving DecidableEq, BEq
variable {α : Type}
variable {m : Type → Type} [Monad m]
open Std
def BinTree.bfs (t : BinTree α) (action : α → m Unit) : m Unit := do
let mut queue : Queue (BinTree α) := ⟨[t], []⟩
while ! queue.isEmpty do
match queue.dequeue? with
| none => break
/- unsupported pattern in syntax match
some (node, q') -/
| some (node, q') =>
queue := q'
match node with
| .empty => continue
| .node v left right => do
action v
queue := queue.enqueue left
queue := queue.enqueue right
Aaron Liu (Sep 27 2025 at 11:09):
Probably node is being treated as BinTree.node does using some other name work
Last updated: Dec 20 2025 at 21:32 UTC