Maybe Functor, Applicative and Monad