{-# 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
