Difference between two ToExpr values.
let x = (1, Just 2) :: (Int, Maybe Int)let y = (1, Nothing)prettyEditExpr (ediff x y)_×_ 1 -(Just 2) +Nothing
data Foo = Foo { fooInt :: Either Char Int, fooBool :: [Maybe Bool], fooString :: String } deriving (Eq, Generic)instance ToExpr Foo
prettyEditExpr $ ediff (Foo (Right 2) [Just True] "fo") (Foo (Right 3) [Just True] "fo")Foo {fooInt = Right -2 +3, fooBool = [Just True], fooString = "fo"}
prettyEditExpr $ ediff (Foo (Right 42) [Just True, Just False] "old") (Foo (Right 42) [Nothing, Just False, Just True] "new")Foo { fooInt = Right 42, fooBool = [-Just True, +Nothing, Just False, +Just True], fooString = -"old" +"new"}