Jaką przewagę daje nam Monad nad aplikacją?

PrzeczytałemTen artykuł, ale nie rozumiałem ostatniej sekcji.

Autor mówi, że Monad daje nam wrażliwość kontekstową, ale możliwe jest osiągnięcie tego samego wyniku przy użyciu tylko instancji Wnioskującej:

let maybeAge = (\futureYear birthYear -> if futureYear < birthYear
    then yearDiff birthYear futureYear
    else yearDiff futureYear birthYear) <
let maybeAge = (\futureYear birthYear -> if futureYear < birthYear
    then yearDiff birthYear futureYear
    else yearDiff futureYear birthYear) <$> (readMay futureYearString) <*> (readMay birthYearString)
gt; (readMay futureYearString) <*> (readMay birthYearString)

Na pewno jest brzydszy bez składni, ale poza tym nie rozumiem, dlaczego potrzebujemy Monada. Czy ktoś może to dla mnie wyjaśnić?

questionAnswers(7)

yourAnswerToTheQuestion