-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Find longest common sublist of two lists
--
-- Provides a function lcs that takes two lists and returns a longest
-- common sublist. For example, lcs abcd acbd is either
-- abd or acd.
--
-- The package provides a simple, stupid and (most of all) slow
-- implementation that needs, for inputs of length m and n, O(m+n) space
-- and O((m+n)!) time in the worst case.
--
-- It also provides an implementation of the Hunt-Szymanski LCS
-- algorithm, based on that in String searching algorithms by
-- Graham A Stephen, ISBN 981021829X.
--
-- Given inputs xs and ys of length m and n respectively, where there are
-- r pairs (x, y) where x is in xs, y is in ys and x == y, Hunt-Szymanski
-- needs O(r+m+n) space and O((r+m+n)*log(m+n)) time. Thus this is
-- O((m+n)^2) space and O((m+n)^2*log(m+n)) time in the worst case.
@package lcs
@version 0.2
-- | This is a simple, stupid and (most of all) slow implementation of the
-- Data.List.LCS interface.
module Data.List.LCS.Simple
lcs :: Ord a => [a] -> [a] -> [a]
-- | This is an implementation of the Hunt-Szymanski LCS algorithm. Derived
-- from the description in "String searching algorithms" by Graham A
-- Stephen, ISBN 981021829X.
module Data.List.LCS.HuntSzymanski
-- | The lcs function takes two lists and returns a list with a
-- longest common subsequence of the two.
lcs :: Ord a => [a] -> [a] -> [a]
-- | Provides a function lcs that takes two lists and returns a longest
-- common sublist. For example, lcs abcd acbd is either
-- abd or acd.
module Data.List.LCS
-- | The lcs function takes two lists and returns a list with a
-- longest common subsequence of the two.
lcs :: Ord a => [a] -> [a] -> [a]