Use underlying definitions of *>, <*, >>, .>, and <. to
reduce unnecessary mapping and constructor noise. Define
some and many for Alternative based on the definitions in
the underlying instance. This cannot be done for Alt.
Applicative f => Applicative (Coyoneda f)
does not give rise to an entailment, so the Applicative method
contexts for Alt.some and Alt.many do not give us access to
Applicative f when we're defining Alt (Coyoneda f).
Reduce
<*>
and<.>
to onefmap
application each.Use underlying definitions of
*>
,<*
,>>
,.>
, and<.
to reduce unnecessary mapping and constructor noise. Definesome
andmany
forAlternative
based on the definitions in the underlying instance. This cannot be done forAlt
.Applicative f => Applicative (Coyoneda f)
does not give rise to an entailment, so the
Applicative
method contexts forAlt.some
andAlt.many
do not give us access toApplicative f
when we're definingAlt (Coyoneda f)
.