>>> take 1 (dropWhileEnd (< 0) (1 : undefined)) [1]
>>> take 1 (reverse $ dropWhile (< 0) $ reverse (1 : undefined)) *** Exception: Prelude.undefinedbut on the other hand
>>> last (dropWhileEnd (< 0) [undefined, 1]) *** Exception: Prelude.undefined
>>> last (reverse $ dropWhile (< 0) $ reverse [undefined, 1]) 1
>>> dropWhileEnd isSpace "foo\n" "foo"
>>> dropWhileEnd isSpace "foo bar" "foo bar" >>> dropWhileEnd (> 10) [1..20] [1,2,3,4,5,6,7,8,9,10]
>>> {-# LANGUAGE OverloadedLists #-) >>> dropWhileEnd even [1,2,3,4,6] [1,2,3]
>>> dropWhileEnd (=='.') "foo..." "foo"
dropWhileEnd (=='.') "foo..." == "foo"
>>> dropWhileEnd isSpace "foo\n" "foo"
>>> dropWhileEnd isSpace "foo bar" "foo bar"
dropWhileEnd isSpace ("foo\n" ++ undefined) == "foo" ++ undefined
>>> dropWhileEnd (=='.') "foo..." "foo"
dropWhileEnd p t == fst (spanEnd p t)
>>> dropWhileEnd (>= 'c') "abcdabcd" "abcdab"
dropWhileEnd (=='.') "foo..." == "foo"
>>> safeTail $ Data.List.dropWhileEnd (<3) [undefined, 5, 4, 3, 2, 1] *** Exception: Prelude.undefined ...
>>> safeTail $ dropWhileEndLE (<3) [undefined, 5, 4, 3, 2, 1] [5,4,3]
>>> take 3 $ Data.List.dropWhileEnd (<3) [5, 4, 3, 2, 1, undefined] [5,4,3]
>>> take 3 $ dropWhileEndLE (<3) [5, 4, 3, 2, 1, undefined] *** Exception: Prelude.undefined ...
dropWhileEnd isSpace "ab cde " == "ab cde" dropWhileEnd' isSpace "ab cde " == "ab cde" last (dropWhileEnd even [undefined,3]) == undefined last (dropWhileEnd' even [undefined,3]) == 3 head (dropWhileEnd even (3:undefined)) == 3 head (dropWhileEnd' even (3:undefined)) == undefined