Different ways of implementing a method from List[Monad[_[+_]] to Monad[List[_[+_]]]