raulraja
trait Monad[F[_]] extends Functor[F] { def flatMap[A, B](this x: F[A])(f: A => F[B]): F[B] ... } witness ListMonad for Monad[List]