1module Data.List.HT ( 2 -- * Improved standard functions 3 L.inits, 4 L.tails, 5 L.groupBy, 6 L.group, 7 L.unzip, 8 L.partition, 9 L.span, 10 L.break, 11 -- * Split 12 L.chop, 13 L.breakAfter, 14 L.takeUntil, 15 L.segmentAfter, 16 L.segmentBefore, 17 L.segmentAfterJust, segmentAfterMaybe, 18 L.segmentBeforeJust, segmentBeforeMaybe, 19 L.segmentAfterRight, 20 L.segmentBeforeRight, 21 L.removeEach, 22 L.splitEverywhere, 23 -- * inspect ends of a list 24 L.splitLast, 25 L.viewL, 26 L.viewR, 27 L.switchL, 28 L.switchR, 29 -- * List processing starting at the end 30 L.dropRev, 31 L.takeRev, 32 L.splitAtRev, 33 dropWhileRev, 34 takeWhileRev, 35 -- * List processing with Maybe and Either 36 L.maybePrefixOf, 37 L.maybeSuffixOf, 38 L.partitionMaybe, 39 L.takeWhileJust, 40 L.dropWhileNothing, 41 L.breakJust, 42 L.spanJust, 43 L.unzipEithers, 44 -- * Sieve and slice 45 L.sieve, 46 L.sliceHorizontal, 47 L.sliceVertical, 48 -- * Search&replace 49 L.search, 50 L.replace, 51 L.multiReplace, 52 -- * Lists of lists 53 L.shear, 54 L.shearTranspose, 55 L.outerProduct, 56 -- * Miscellaneous 57 L.takeWhileMulti, 58 L.rotate, 59 L.mergeBy, 60 L.allEqual, 61 L.isAscending, 62 L.isAscendingLazy, 63 L.mapAdjacent, 64 L.mapAdjacent1, 65 L.range, 66 L.padLeft, 67 L.padRight, 68 L.iterateAssociative, 69 L.iterateLeaky, 70 L.lengthAtLeast, 71 L.lengthAtMost, 72 ) where 73 74import qualified Data.List.HT.Private as L 75import qualified Data.List.Reverse.StrictElement as Rev 76 77{-# DEPRECATED dropWhileRev "Use dropWhile from Data.List.Reverse.StrictElement or Data.List.Reverse.StrictSpine instead" #-} 78dropWhileRev :: (a -> Bool) -> [a] -> [a] 79dropWhileRev = Rev.dropWhile 80 81{-# DEPRECATED takeWhileRev "Use takeWhile from Data.List.Reverse.StrictElement or Data.List.Reverse.StrictSpine instead" #-} 82takeWhileRev :: (a -> Bool) -> [a] -> [a] 83takeWhileRev = Rev.takeWhile 84 85{-# DEPRECATED segmentBeforeMaybe "use segmentBeforeJust instead" #-} 86segmentBeforeMaybe :: (a -> Maybe b) -> [a] -> ([a], [(b, [a])]) 87segmentBeforeMaybe = L.segmentBeforeJust 88 89{-# DEPRECATED segmentAfterMaybe "use segmentAfterJust instead" #-} 90segmentAfterMaybe :: (a -> Maybe b) -> [a] -> ([([a], b)], [a]) 91segmentAfterMaybe = L.segmentAfterJust 92