GADT related bug in GHC type checker