The two sub-patterns pattern 1 and pattern 2 must bind exactly the same identifiers to values having the same types.
(The two sub-patterns pattern 1 and pattern 2; must bind; exactly the same identifiers to values) (values; having; the same types)
The two sub-patterns pattern 1 and pattern 2 values
must bind having
exactly the same identifiers to values
the same types