{- With GADTs, -fwarn-incomplete-patterns complainsabout missing impossible cases.-}{-# OPTIONS_GHC -fglasgow-exts-fwarn-incomplete-patterns #-}data Var = Vardata Typ = Typdata Tree a where V :: String -> Tree Var T_int :: Tree TypgetId :: Tree Var -> StringgetId (V x) = x--getId T_int = "T_int"{-With the last line commented out:gadt-pattern-warning.hs:11:0: Warning: Pattern match(es) are non-exhaustive In the definition of `getId': Patterns notmatched: T_intOk, modules loaded: Main.With the last line not commented out:gadt-pattern-warning.hs:12:6: Inaccessible case alternative: Can't match types`Typ' and `Var' When checking the pattern: T_int In the definition of `getId': getId T_int = "T_int"Failed, modules loaded: none.-}