module NoEq where {-+ If you want to derive Eq for some big datatype that contains something that does not allow equality, you can wrap it in NoEq. For example you can use NoEq (Int->Int) instead of (Int->Int) as an argument to a constructor. -} newtype NoEq a = N a instance Eq (NoEq a) where _ == _ = True instance Ord (NoEq a) where compare _ _ = EQ instance Show a => Show (NoEq a) where showsPrec n (N x) = showsPrec n x