-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | O(ND) diff algorithm in haskell. -- -- Implementation of the standard diff algorithm, and utilities for -- pretty printing. @package Diff @version 0.4.1 -- | This is an implementation of the O(ND) diff algorithm as described in -- "An O(ND) Difference Algorithm and Its Variations (1986)" -- http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927. -- It is O(mn) in space. The algorithm is the same one used by standared -- Unix diff. module Data.Algorithm.Diff -- | This is PolyDiff specialized so both sides are the same type. type Diff a = PolyDiff a a -- | A value is either from the First list, the Second or -- from Both. Both 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). data PolyDiff a b First :: a -> PolyDiff a b Second :: b -> PolyDiff a b Both :: a -> b -> PolyDiff a b -- | Takes two lists and returns a list of differences between them. This -- is getDiffBy with == used as predicate. getDiff :: Eq a => [a] -> [a] -> [Diff a] -- | A form of getDiff with no Eq constraint. Instead, an -- equality predicate is taken as the first argument. getDiffBy :: (a -> b -> Bool) -> [a] -> [b] -> [PolyDiff a b] -- | Takes two lists and returns a list of differences between them, -- grouped into chunks. This is getGroupedDiffBy with == -- used as predicate. getGroupedDiff :: Eq a => [a] -> [a] -> [Diff [a]] getGroupedDiffBy :: (a -> b -> Bool) -> [a] -> [b] -> [PolyDiff [a] [b]] instance GHC.Classes.Eq Data.Algorithm.Diff.DI instance GHC.Show.Show Data.Algorithm.Diff.DI instance (GHC.Classes.Eq a, GHC.Classes.Eq b) => GHC.Classes.Eq (Data.Algorithm.Diff.PolyDiff a b) instance (GHC.Show.Show a, GHC.Show.Show b) => GHC.Show.Show (Data.Algorithm.Diff.PolyDiff a b) instance GHC.Classes.Eq Data.Algorithm.Diff.DL instance GHC.Show.Show Data.Algorithm.Diff.DL instance GHC.Classes.Ord Data.Algorithm.Diff.DL -- | Generates a grouped diff with merged runs, and outputs them in the -- manner of diff -u module Data.Algorithm.DiffContext -- | See -- https://github.com/seereason/Diff/commit/35596ca45fdd6ee2559cf610bef7a86b4617988a. -- The original getContextDiff omitted trailing context in diff -- hunks. This new one corrects the issue. Here is the example from the -- test suite: -- --
-- prettyContextDiff (text "file1") (text "file2") text (getContextDiffOld 2 (lines textA) (lines textB)) ---- --
-- prettyContextDiff (text "file1") (text "file2") text (getContextDiff 2 (lines textA) (lines textB)) ---- --