package arrow
 Alphabetic
 Public
 All
Type Members

trait
Arrow[F[_, _]] extends Category[F] with Strong[F]
Must obey the laws defined in cats.laws.ArrowLaws.
Must obey the laws defined in cats.laws.ArrowLaws.
 Annotations
 @implicitNotFound( ... ) @typeclass( ... , ... )

trait
ArrowChoice[F[_, _]] extends Arrow[F] with Choice[F]
Must obey the laws defined in cats.laws.ArrowChoiceLaws.
Must obey the laws defined in cats.laws.ArrowChoiceLaws.
 Annotations
 @implicitNotFound( ... ) @typeclass( ... , ... )

trait
Category[F[_, _]] extends Compose[F]
Must obey the laws defined in cats.laws.CategoryLaws.
Must obey the laws defined in cats.laws.CategoryLaws.
 Annotations
 @implicitNotFound( ... ) @typeclass( ... , ... )

trait
Choice[F[_, _]] extends Category[F]
 Annotations
 @implicitNotFound( ... ) @typeclass( ... , ... )

trait
CommutativeArrow[F[_, _]] extends Arrow[F]
In a Commutative Arrow F[_, _], the split operation (or
***
) is commutative, which means that there is noninterference between the effect of the paired arrows.In a Commutative Arrow F[_, _], the split operation (or
***
) is commutative, which means that there is noninterference between the effect of the paired arrows.Must obey the laws in CommutativeArrowLaws
 Annotations
 @implicitNotFound( ... ) @typeclass( ... , ... )

trait
Compose[F[_, _]] extends Serializable
Must obey the laws defined in cats.laws.ComposeLaws.
Must obey the laws defined in cats.laws.ComposeLaws.
Here's how you can use
>>>
and<<<
Example:scala> import cats.implicits._ scala> val f : Int => Int = (_ + 1) scala> val g : Int => Int = (_ * 100) scala> (f >>> g)(3) res0: Int = 400 scala> (f <<< g)(3) res1: Int = 301
 Annotations
 @implicitNotFound( ... ) @typeclass( ... , ... )

trait
FunctionK[F[_], G[_]] extends Serializable
FunctionK[F[_], G[_]]
is a functor transformation fromF
toG
in the same manner that functionA => B
is a morphism from values of typeA
toB
.FunctionK[F[_], G[_]]
is a functor transformation fromF
toG
in the same manner that functionA => B
is a morphism from values of typeA
toB
. An easy way to create a FunctionK instance is to use the Polymorphic lambdas provided by typelevel/kindprojector v0.9+. E.g.val listToOption = λ[FunctionK[List, Option]](_.headOption)

trait
Profunctor[F[_, _]] extends Serializable
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.
 Annotations
 @implicitNotFound( ... ) @typeclass( ... , ... )

trait
Strong[F[_, _]] extends Profunctor[F]
Must obey the laws defined in cats.laws.StrongLaws.
Must obey the laws defined in cats.laws.StrongLaws.
 Annotations
 @implicitNotFound( ... ) @typeclass( ... , ... )
Value Members
 object Arrow extends Serializable
 object ArrowChoice extends Serializable
 object Category extends Serializable
 object Choice extends Serializable
 object CommutativeArrow extends Serializable
 object Compose extends Serializable
 object FunctionK extends FunctionKMacroMethods with Serializable
 object Profunctor extends Serializable
 object Strong extends Serializable