{-# LANGUAGE TypeFamilies, DataKinds, PolyKinds #-}
module Overlap6 where
type family And (a :: Bool) (b :: Bool) :: Bool where
And False x = False
And True x = False -- this is wrong!
And x False = False
And x True = x
And x x = x
data Proxy p = P
g :: Proxy x -> Proxy (And x True)
g x = x