1 2 3 4 5 6 7 8 9 10
--{-# LANGUAGE TraceTypeCheck #-} type B = Bool type F a b = (a, b) main = (True :: B) && fst ((True, 'c') :: F Bool Char)