[Haskell] Re: Conditional typechecking with GADTs