module Comparison
  ( Comparison (..)
  , differsOn
  ) where

import Internal.Prelude

data Comparison a = Comparison
  { forall a. Comparison a -> a
old :: a
  , forall a. Comparison a -> a
new :: a
  }

differsOn :: Eq b => (a -> b) -> Comparison a -> Bool
differsOn :: forall b a. Eq b => (a -> b) -> Comparison a -> Bool
differsOn a -> b
f Comparison {a
$sel:old:Comparison :: forall a. Comparison a -> a
old :: a
old, a
$sel:new:Comparison :: forall a. Comparison a -> a
new :: a
new} = a -> b
f a
old b -> b -> Bool
forall a. Eq a => a -> a -> Bool
/= a -> b
f a
new