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