trait ArrowLaws[F[_, _]] extends CategoryLaws[F] with StrongLaws[F]
Laws that must be obeyed by any cats.arrow.Arrow
.
Linear Supertypes
Known Subclasses
Ordering
- Alphabetic
- By Inheritance
Inherited
- ArrowLaws
- StrongLaws
- ProfunctorLaws
- CategoryLaws
- ComposeLaws
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- Protected
Abstract Value Members
- implicit abstract def F: Arrow[F]
- Definition Classes
- ArrowLaws → StrongLaws → ProfunctorLaws → CategoryLaws → ComposeLaws
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def arrowAssociation[A, B, C, D](f: F[A, B]): IsEq[F[((A, C), D), (B, (C, D))]]
- def arrowComposition[A, B, C](f: (A) => B, g: (B) => C): IsEq[F[A, C]]
- def arrowExchange[A, B, C, D](f: F[A, B], g: (C) => D): IsEq[F[(A, C), (B, D)]]
- def arrowExtension[A, B, C](g: (A) => B): IsEq[F[(A, C), (B, C)]]
- def arrowFunctor[A, B, C, D](f: F[A, B], g: F[B, C]): IsEq[F[(A, D), (C, D)]]
- def arrowIdentity[A]: IsEq[F[A, A]]
- def arrowUnit[A, B, C](f: F[A, B]): IsEq[F[(A, C), B]]
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def categoryLeftIdentity[A, B](f: F[A, B]): IsEq[F[A, B]]
- Definition Classes
- CategoryLaws
- def categoryRightIdentity[A, B](f: F[A, B]): IsEq[F[A, B]]
- Definition Classes
- CategoryLaws
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def composeAssociativity[A, B, C, D](fab: F[A, B], fbc: F[B, C], fcd: F[C, D]): IsEq[F[A, D]]
- Definition Classes
- ComposeLaws
- def dinaturalityFirst[A, B, C, D](fab: F[A, B], f: (C) => D): IsEq[F[(A, C), (B, D)]]
lmap (second f) .
lmap (second f) . first == rmap (second f) . first
- Definition Classes
- StrongLaws
- def dinaturalitySecond[A, B, C, D](fab: F[A, B], f: (C) => D): IsEq[F[(C, A), (D, B)]]
lmap (first f) .
lmap (first f) . second == rmap (first f) . second
- Definition Classes
- StrongLaws
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def firstFirstIsDimap[A, B, C, D](fab: F[A, B]): IsEq[F[((A, C), D), ((B, C), D)]]
first' .
first' . first' == dimap assoc unassoc . first' where assoc ((a,b),c) = (a,(b,c)) unassoc (a,(b,c)) = ((a,b),c)
- Definition Classes
- StrongLaws
- def firstIsSwappedSecond[A, B, C](fab: F[A, B]): IsEq[F[(A, C), (B, C)]]
first' == dimap swap swap .
first' == dimap swap swap . second'
- Definition Classes
- StrongLaws
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def lmapEqualsFirstAndThenRmap[A, B, C](fab: F[A, B]): IsEq[F[(A, C), B]]
lmap fst == rmap fst .
lmap fst == rmap fst . first'
- Definition Classes
- StrongLaws
- def lmapEqualsSecondAndThenRmap[A, B, C](fab: F[A, B]): IsEq[F[(C, A), B]]
lmap snd == rmap snd .
lmap snd == rmap snd . second'
- Definition Classes
- StrongLaws
- def mergeConsistentWithAndThen[A, B, C](f: F[A, B], g: F[A, C]): IsEq[F[A, (B, C)]]
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def profunctorComposition[A2, A1, A0, B0, B1, B2](fab: F[A0, B0], f2: (A2) => A1, f1: (A1) => A0, g1: (B0) => B1, g2: (B1) => B2): IsEq[F[A2, B2]]
- Definition Classes
- ProfunctorLaws
- def profunctorIdentity[A, B](fab: F[A, B]): IsEq[F[A, B]]
- Definition Classes
- ProfunctorLaws
- def profunctorLmapComposition[A2, A1, A0, B](fab: F[A0, B], f: (A2) => A1, g: (A1) => A0): IsEq[F[A2, B]]
- Definition Classes
- ProfunctorLaws
- def profunctorLmapIdentity[A, B](fab: F[A, B]): IsEq[F[A, B]]
- Definition Classes
- ProfunctorLaws
- def profunctorRmapComposition[A, B2, B1, B0](fab: F[A, B0], f: (B0) => B1, g: (B1) => B2): IsEq[F[A, B2]]
- Definition Classes
- ProfunctorLaws
- def profunctorRmapIdentity[A, B](fab: F[A, B]): IsEq[F[A, B]]
- Definition Classes
- ProfunctorLaws
- def secondIsSwappedFirst[A, B, C](fab: F[A, B]): IsEq[F[(C, A), (C, B)]]
second' == dimap swap swap .
second' == dimap swap swap . first'
- Definition Classes
- StrongLaws
- def secondSecondIsDimap[A, B, C, D](fab: F[A, B]): IsEq[F[(D, (C, A)), (D, (C, B))]]
second' .
second' . second' == dimap unassoc assoc . second' where assoc ((a,b),c) = (a,(b,c)) unassoc (a,(b,c)) = ((a,b),c)
- Definition Classes
- StrongLaws
- def splitConsistentWithAndThen[A, B, C, D](f: F[A, B], g: F[C, D]): IsEq[F[(A, C), (B, D)]]
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()