I\'ve always enjoyed the following intuitive explanation of a monad\'s power relative to a functor: a monad can change shape; a functor cannot.
For example: length
length
Does
h :: (Monad m, Num a) => a -> m a h 0 = fail "Failed." h a = return a
suit your needs? For example,
> [0,1,2,3] >>= h [1,2,3]