{-# OPTIONS_GHC -fglasgow-exts #-}
{-# OPTIONS_GHC -fallow-overlapping-instances #-}
{-# OPTIONS_GHC -fallow-undecidable-instances #-}

class Fail all -- no instances!

class TypeNotEq a b
instance Fail a => TypeNotEq a a
instance TypeNotEq a b

class Test a b where test :: a -> b -> Bool
instance TypeNotEq a b => Test a b where test _ _ = False
instance Test a a where test _ _ = True

main = print $ (test True 'c', test True False)

{-
data T = T deriving Show
data F = F deriving Show

class TNE a b tBool | a b -> tBool
instance Fail a => TNE a a F
instance TNE a b T
-}
