Pattern match checking for GADTs