import applicative.Monad import scala.language.higherKinds package object util { implicit class MonadOps[F[_] : Monad, A](fa: F[A]) { def flatMap[B](f: A => F[B]): F[B] = implicitly[Monad[F]].flatMap(fa)(f) def map[B](f: A => B): F[B] = implicitly[Monad[F]].map(fa)(f) } }