Tutte le scuse - Sono ancora molto al di fuori di Haskell.
Perché il bind di una monade ha questa firma:
M a -> (a -> M b) -> M b
e non
M a -> (M a -> M b) -> M b
vale a dire. una funzione che accetta M a
invece di solo a
a
è disponibile per la funzione in entrambi, ma il contesto che M
fornisce non è disponibile per la funzione nel 1 °. Solo il valore elevato stesso.
(Se questa è una domanda stupida, mi limita a molto tempo e la cancellerò ... come dico, ancora molto all'esterno)