module Data.Enumerable.FunctionEquality where

import Data.Enumerable
import Control.Applicative

instance (FinitelyEnumerable a, Eq b) => Eq (a -> b) where
  f == g = all (liftA2 (==) f g) enumerate
  f /= g = any (liftA2 (/=) f g) enumerate