úÎxh     1(c) Sterling Clover 2008-2011, Kevin Charter 2011 BSD 3 Clauses.clover@gmail.com experimentalportableSafeA value is either from the  list, the  or from . Ç contains both the left and right values, in case you are using a form of equality that doesn't check all data (for example, if you are using a newtype to only perform equality on side of a tuple).ITakes two lists and returns a list of differences between them. This is  with  used as predicate.^Takes two lists and returns a list of differences between them, grouped into chunks. This is  with  used as predicate. A form of  with no L constraint. Instead, an equality predicate is taken as the first argument. !"#$%&  !"#$%&1(c) Sterling Clover 2008-2011, Kevin Charter 2011 BSD 3 Clauses.clover@gmail.com experimentalportableSafe-Diff Operation representing changes to apply #Line Range: start, end and contentsLine number alias Converts Diffs to DiffOperationsUpretty print the differences. The output is similar to the output of the diff utilitypretty print of diff operations,Parse pretty printed Diffs as DiffOperations         (c) David Fox (2015) BSD 3 Clauses.clover@gmail.com experimentalportableSafeàDo a grouped diff and then split up the chunks into runs that contain differences surrounded by N lines of unchanged text. If there is less then 2N+1 lines of unchanged text between two changes, the runs are left merged.4Pretty print a ContextDiff in the manner of diff -u.'Document 1 nameDocument 2 nameElement pretty printer'(      !"#$%&'()*+,Diff_Bk5w47c07lGLRfmS6aOQ9aData.Algorithm.DiffData.Algorithm.DiffOutputData.Algorithm.DiffContextDiffFirstSecondBothgetDiffgetGroupedDiff getDiffBygetGroupedDiffBy DiffOperationDeletionAdditionChange LineRange lrNumbers lrContentsLineNodiffToLineRangesppDiff prettyDiffsparsePrettyDiffsgetContextDiffprettyContextDiffghc-prim GHC.Classes==EqDLpoipojpathDIFSBcanDiagdstepaddsnakelcs$fOrdDL ContextDiff