Functor and Monad traits