Кто бы мог подумать, ещё лет 5 назад, что питон получит типизацию и функциональщину. Но нет:
def is_tuple(node: Node) -> bool:
match node:
case Node(children=[LParen(), RParen()]):
return True
case Node(children=[Leaf(value="("), Node(), Leaf(value=")")]):
return True
case _:
return False
История показывает, что участь любого популярного ЯП - С++ ужас.