1{-# LANGUAGE GADTs #-}
2
3data GADT b a where
4  GBool :: b -> GADT b Bool
5  GInt :: GADT b Int
6
7-- wingman would prefer to use GBool since then it can use its argument. But
8-- that won't unify with GADT Int, so it is forced to pick GInt and ignore the
9-- argument.
10test :: b -> GADT b Int
11test _ = GInt
12
13