-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | O(ND) diff algorithm in haskell.
--
-- Basic implementation of the standard diff algorithm.
@package Diff
@version 0.2.0
-- | 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
-- | 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 Diff a
First :: a -> Diff a
Second :: a -> Diff a
Both :: a -> a -> Diff a
-- | Takes two lists and returns a list of differences between them. This
-- is getDiffBy with == used as predicate.
getDiff :: Eq t => [t] -> [t] -> [Diff t]
-- | A form of getDiff with no Eq constraint. Instead, an
-- equality predicate is taken as the first argument.
getDiffBy :: (t -> t -> Bool) -> [t] -> [t] -> [Diff t]
-- | Takes two lists and returns a list of differences between them,
-- grouped into chunks. This is getGroupedDiffBy with ==
-- used as predicate.
getGroupedDiff :: Eq t => [t] -> [t] -> [Diff [t]]
getGroupedDiffBy :: (t -> t -> Bool) -> [t] -> [t] -> [Diff [t]]
instance Show DI
instance Eq DI
instance Show a => Show (Diff a)
instance Eq a => Eq (Diff a)
instance Show DL
instance Eq DL
instance Ord DL