Allow multiple case branches to have a higher rank type
As #18412 (closed) points out, it should be OK for multiple case alternatives to have a higher rank type, provided they are all the same.
This patch implements that change. It sweeps away
GHC.Tc.Gen.Match.tauifyMultipleBranches
, and friends, replacing it
with an enhanced version of fillInferResult
.
The basic change to fillInferResult
is to permit the case in which
another case alternative has already filled in the result; and in
that case simply unify. It's very simple actually.
See the new Note [fillInferResult]
.