Must obey the laws defined in cats.laws.ArrowLaws.
Must obey the laws defined in cats.laws.ArrowChoiceLaws.
Must obey the laws defined in cats.laws.CategoryLaws.
In a Commutative Arrow F[_, _], the split operation (or ***
) is commutative,
which means that there is non-interference between the effect of the paired arrows.
Must obey the laws defined in cats.laws.ComposeLaws.
FunctionK[F[_], G[_]]
is a functor transformation from F
to G
in the same manner that function A => B
is a morphism from values
of type A
to B
.
FunctionK[F[_], G[_]]
is a functor transformation from F
to G
in the same manner that function A => B
is a morphism from values
of type A
to B
.
An easy way to create a FunctionK instance is to use the Polymorphic
lambdas provided by non/kind-projector v0.9+. E.g.
val listToOption = λ[FunctionK[List, Option]](_.headOption)
A Profunctor is a Contravariant functor on its first type parameter and a Functor on its second type parameter.
A Profunctor is a Contravariant functor on its first type parameter and a Functor on its second type parameter.
Must obey the laws defined in cats.laws.ProfunctorLaws.
Must obey the laws defined in cats.laws.StrongLaws.
In a Commutative Arrow F[_, _], the split operation (or
***
) is commutative, which means that there is non-interference between the effect of the paired arrows.Must obey the laws in CommutativeArrowLaws