module Data.Enumerable.ControversialFunctionEquality where import Data.Enumerable import Control.Applicative instance (Enumerable a, Eq b) => Eq (a -> b) where f == g = all (liftA2 (==) f g) enumerate f /= g = any (liftA2 (/=) f g) enumerate