module ShouldSucceed where class Foo a where o_and :: a -> a -> a instance Foo Bool where o_and False x = False o_and x False = False o_and True True = True instance Foo Int where o_and x 0 = 0 o_and 0 x = 0 o_and 1 1 = 1 f x y = o_and x False g x y = o_and x 1