Both names come from programming, not from mathematics. return , used as the last expression of the do statement, makes it very important: do {do_something; return result} do {do_something; return result} . bind name comes from the translation do : action >>= \x -> something translates to do {x <- action; something} do {x <- action; something} that looks like x bound to the value returned from action .
Regarding the bind analog in the mathematical world, google "Kleisli triple".
source share