now how can I know the behaviour in between the line of a Monad.
I aimagine that this is the purpose of the bind method (>>=).

Yes, that's the case.

Where is this  defined  for Maybe and IO ?

You just look at the Monad instance for the type. IO is a bit special, but
here is the one for Maybe[1].

Greetings,
Daniel

[1] http://hackage.haskell.org/package/base-4.9.1.0/docs/src/GHC.Base.html#line-665