dropWhile package:utility-ht
Remove the longest suffix of elements satisfying p. In contrast to
reverse . dropWhile p . reverse this works for infinite
lists, too.
forAllPredicates $ \p xs -> Rev.dropWhile p xs == reverse (List.dropWhile p (reverse xs))
\x xs pad -> defined $ Match.take (pad::[()]) $ Rev.dropWhile ((x::Char)/=) $ cycle $ x:xs
forAllPredicates $ \p xs -> Rev.dropWhile p xs == reverse (List.dropWhile p (reverse xs))
\x xs pad -> defined $ length $ Rev.dropWhile ((x::Char)/=) $ Match.replicate (pad::[()]) undefined ++ x:xs
Deprecated: Use dropWhile from Data.List.Reverse.StrictElement or
Data.List.Reverse.StrictSpine instead