data Foo = MkFoo instance Eq Foo where (==) _ _ = False instance Ord Foo where compare _ _ = LT instance Num Foo where (+) _ _ = MkFoo (*) _ _ = MkFoo abs _ = MkFoo signum _ = MkFoo fromInteger _ = MkFoo negate _ = MkFoo main = print $ 2 + 2 == (4 :: Foo)