module Data.List.HT ( -- * Improved standard functions L.inits, L.tails, L.groupBy, L.group, L.unzip, L.partition, L.span, L.break, -- * Split L.chop, L.breakAfter, L.takeUntil, L.segmentAfter, L.segmentBefore, L.segmentAfterMaybe, L.segmentBeforeMaybe, L.removeEach, L.splitEverywhere, -- * inspect ends of a list L.splitLast, L.viewL, L.viewR, L.switchL, L.switchR, -- * List processing starting at the end L.dropRev, L.takeRev, L.splitAtRev, dropWhileRev, takeWhileRev, -- * List processing with Maybe and Either L.maybePrefixOf, L.maybeSuffixOf, L.partitionMaybe, L.takeWhileJust, L.unzipEithers, -- * Sieve and slice L.sieve, L.sliceHorizontal, L.sliceVertical, -- * Search&replace L.search, L.replace, L.multiReplace, -- * Lists of lists L.shear, L.shearTranspose, L.outerProduct, -- * Miscellaneous L.takeWhileMulti, L.rotate, L.mergeBy, L.allEqual, L.isAscending, L.isAscendingLazy, L.mapAdjacent, L.mapAdjacent1, L.range, L.padLeft, L.padRight, L.iterateAssociative, L.iterateLeaky, L.lengthAtLeast, ) where import qualified Data.List.HT.Private as L import qualified Data.List.Reverse.StrictElement as Rev {-# DEPRECATED dropWhileRev "Use dropWhile from Data.List.Reverse.StrictElement or Data.List.Reverse.StrictSpine instead" #-} dropWhileRev :: (a -> Bool) -> [a] -> [a] dropWhileRev = Rev.dropWhile {-# DEPRECATED takeWhileRev "Use takeWhile from Data.List.Reverse.StrictElement or Data.List.Reverse.StrictSpine instead" #-} takeWhileRev :: (a -> Bool) -> [a] -> [a] takeWhileRev = Rev.takeWhile