Pattern matches in Ocaml now allow alternatives within
a branch subject to a restriction that all alternatives
supply the same set of pattern variables (and of the same type).
This is useful but still quite restrictive, for example:
| A (i,j) | B i with j = 1 -> i + j
This form looks more general:
| in A (h,k) let i = h and k = k
| in B s let i = s + 1 let k = i