
14 Sep
2008
14 Sep
'08
12:08 p.m.
I think the crux of the matter was that a monad is too general. Either there is a result or there is not. That's precisely the intended use of a Maybe.
Indeed "Monad m =>" is dangerous here because not every Monad has a reasonable definition of "fail". But that seems to be a problem in the (current) definition of "Monad", and its solution was "MonadZero", no? J.W.