The infix application function (ma>>=\a->f(a)), commonly called bind, executes the computation ma to expose its effects, calling the resulting value a, and passes that to function f.
This is the kind of imprecise language that really made life extraordinarily difficult for me when I first learned about monads. I think this is an important point:
>>= does not execute ma!
If it did execute ma, that would violate the purity of the language.
Instead, >>= takes the computation ma and combines it with the function f to build a new, larger computation that is composed of smaller parts. The resulting computation (and ma) might never be executed (depending on the rest of the program).