Welcome! Got a question? Do you have -Ypartial-unification turned on? Other FAQs: http://typelevel.org/cats/faq.html
total
flag, and so on
>>>
though, for now
*>
and >>
operators?
>>>
, not >>
>>
vs *>
if you want
def *>[F[_]: Applicative, A, B](fa: F[A], fb: F[B]): F[B] = (fa, fb).mapN((_, b) => b)
def >>[F[_]: Monad, A, B](fa: F[A], fb: F[B]): F[B] = fa.flatMap(_ => fb)
>>
is the same as *>
(with one caveat that I'll mention at the end)
Monad
constraint, they are also the same
Applicative
bound they might not be
def foo[F[_]: Monad] = fa >> fb //pseudocode actually
// is the same as
def foo[F[_]: Monad] = fa *> fb
// is _not_ necessarily the same as
def foo[F[_]: Applicative] = fa *> fb
ParIO