I want to evaluate a function on a series of inputs:

f :: a -> Maybe b

then collect the results [b] if they are all Just, or terminate the computation immediately upon hitting Nothing. 

This is exactly what mapM does in the Maybe monad, correct?

In particular I want to make sure that it will not try to evaluate anything past the first 'Nothing' result as the efficiency of my design is based on that.

D