Trying to add instances for functor, applicative, monoid and monad