data Maybe a = Nothing | Just a instance Monad Maybe where ...Beispiel-Anwendung:
case ( evaluate e l ) of
Nothing -> Nothing
Just a -> case ( evaluate e r ) of
Nothing -> Nothing
Just b -> Just ( a + b )
mittels der Monad-Instanz von Maybe:
evaluate e l >>= \ a ->
evaluate e r >>= \ b ->
return ( a + b)
Ü: dasselbe mit do-Notation