
13 Sep
2007
13 Sep
'07
1:02 p.m.
Jeff Polakow wrote:
Hello,
There are 4 variants of tail:
tail :: [a] -> [a] -- normal tailDef :: [a] -> [a] -> [a] -- returns the first argument on [] tailMay :: [a] -> Maybe [a] -- returns a Nothing tailNote :: String -> [a] -> [a] -- crashes, but with a helpful message tailSafe :: [a] -> [a] -- returns [] on []
Is there a reason for not having
tailM :: Monad m => [a] -> m [a]
Monads are not an (elegant, or deliberate) abstraction of failure. Jules