Fix the detection of useful existential variables
It seems that the mechanism to detect which existential variables are used in the match
of GADTs is a little broken. In particular, as I remember, it does not detect that a variable is used when it appears in the type annotations of an inner GADT match
. Do a check and fix.