match 42: case x, x: pass case x, (1 as x) | (2 as x): pass case [(1 as x) | (2 as x), x]: pass case [(1 as x) | (2 as x), (1 as x) | (2 as x)]: pass case ((1 as x) | (2 as x)) | (3 as x): pass case x, ((1 as x) | (2 as x)) | (3 as x): pass case (x, (1 as x) | (2 as x)) | (3 as x): pass