:: (a -> Bool) -> [a] -> ([a], [a]) package:utility-ht
partition of GHC 6.2.1 fails on infinite lists. But this one
does not.
It is Data.List.span f undefined = undefined, whereas
span f undefined = (undefined, undefined).
It is Data.List.span f undefined = undefined, whereas
span f undefined = (undefined, undefined).
Like
break, but splits after the matching element.
forAllPredicates $ \p xs -> uncurry (++) (breakAfter p xs) == xs
forAllPredicates $ \p xs -> Rev.span p xs == swap (mapPair (reverse, reverse) (List.span p (reverse xs)))
forAllPredicates $ \p xs -> Rev.span p xs == (Rev.dropWhile p xs, Rev.takeWhile p xs)
\x xs pad -> defined $ Match.take (pad::[()]) $ fst $ Rev.span ((x::Char)/=) $ cycle $ x:xs
forAllPredicates $ \p xs -> Rev.span p xs == swap (mapPair (reverse, reverse) (List.span p (reverse xs)))
forAllPredicates $ \p xs -> Rev.span p xs == (Rev.dropWhile p xs, Rev.takeWhile p xs)
\x xs pad -> defined $ mapFst length $ Rev.span ((x::Char)/=) $ Match.replicate (pad::[()]) undefined ++ x:xs