GADT pattern match in non-rigid context