>>> let hello = diff "Hello, "
>>> appEndo hello "World!" "Hello, World!"
>>> appEndo (hello <> mempty) "World!" "Hello, World!"
>>> appEndo (mempty <> hello) "World!" "Hello, World!"
>>> let world = diff "World" >>> let excl = diff "!"
>>> appEndo (hello <> (world <> excl)) mempty "Hello, World!"
>>> appEndo ((hello <> world) <> excl) mempty "Hello, World!"
diff y (<) 87 diff x (<=) rThis function behaves like the unix diff tool, which gives a 0 exit code if the compared files are identical, or a 1 exit code code otherwise. Like unix diff, if the arguments fail the comparison, a /diff is shown.
>>> let hello = diff "Hello, " >>> appEndo hello "World!" "Hello, World!" >>> appEndo (hello <> mempty) "World!" "Hello, World!" >>> appEndo (mempty <> hello) "World!" "Hello, World!" >>> let world = diff "World" >>> let excl = diff "!" >>> appEndo (hello <> (world <> excl)) mempty "Hello, World!" >>> appEndo ((hello <> world) <> excl) mempty "Hello, World!"
let hello = diff "Hello, "
>>> appEndo hello "World!" "Hello, World!"
>>> appEndo (hello <> mempty) "World!" "Hello, World!"
>>> appEndo (mempty <> hello) "World!" "Hello, World!"
let world = diff "World" let excl = diff "!"
>>> appEndo (hello <> (world <> excl)) mempty "Hello, World!"
>>> appEndo ((hello <> world) <> excl) mempty "Hello, World!"
diff (xs <> ys) ys == xs
>>> diff (slist [1..10]) (slist [1,3..10]) Slist {sList = [2,4,6,8,10], sSize = Size 5} >>> diff (slist [1,3..10]) (slist [2,4..10]) Slist {sList = [1,3,5,7,9], sSize = Size 5}