data Maybe a = Just a | Nothing
typische Benutzung:
case ( evaluate e l ) of Nothing -> Nothing Just a -> case ( evaluate e r ) of Nothing -> Nothing Just b -> Just ( a + b )
äquivalent
(mit passendem (>>=)
und return
)
evaluate e l >>= \ a -> evaluate e r >>= \ b -> return ( a + b )