For the time being, these are the only patterns we'll allow. But since the definition of patterns is recursive, this permits very complex patterns. What would this evaluate to:
let
- ([x, y], [z:zs, w]) match ([[], [1]], [[10, 20, 30], [0]])
- in (z, y)
+ ([xs, ys], [z:zs, ws]) match ([[], [1]], [[10, 20, 30], [0]])
+ in z & ys
Also, we will permit complex patterns in λ-expressions, too. So you can write: