
28 Dec
2007
28 Dec
'07
11:58 a.m.
Achim Schneider
zeroIf :: MonadPlus m => (a -> Bool) -> m a -> m a zeroIf f m = m >>= (\nz -> if f nz then mzero else m)
zeroZero :: (MonadPlus m, Num a) => m a -> m a zeroZero = zeroIf (==0)
makes it interesting again as you can't construct a Just value with it.
d'oh. return nz. /me hides under a monad.