{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FunctionalDependencies #-}
class AnyComp a b | a -> b where
(.==.) :: a -> b -> Bool
instance Eq a => AnyComp a (Maybe a) where
a .==. (Just b) = a == b
_ .==. _ = False
main = do
print (False .==. Nothing)
print (False .==. Just False)