Returns a monad implemented by for comprehension syntax.
Returns a monad implemented by for comprehension syntax.
F must support for comprehension, containing map and flatMap methods,
and F's companion object must contains an apply method to create a F[A] instance from any A.
the higher kinded type that the monad works with, e.g. a Scala container Seq.
the monad.