fr: Maintenant, améliorons cela en utilisant le fait que `Maybe` est une Monade.
en: Now, let's make it better using Maybe and the fact that it is a Monad

> deposit :: (Num a) => a -> a -> Maybe a
> deposit value account = Just (account + value)
> 
> withdraw :: (Num a,Ord a) => a -> a -> Maybe a
> withdraw value account = if (account < value) 
>                          then Nothing 
>                          else Just (account - value)
> 
> eligible :: (Num a, Ord a) => a -> Maybe Bool
> eligible account = do
>   account1 <- deposit 100 account 
>   account2 <- withdraw 200 account1 
>   account3 <- deposit 100 account2 
>   account4 <- withdraw 300 account3 
>   account5 <- deposit 1000 account4
>   Just True
> 
> main = do
>   print $ eligible 300 -- Just True
>   print $ eligible 299 -- Nothing
