StrongMonadPlusLaw

trait MonadLaw
trait BindLaw
trait ApplyLaw
trait EmptyLaw
trait PlusLaw
class Object
trait Matchable
class Any

Value members

Concrete methods

def rightZero[A](f: F[A])(implicit FA: Equal[F[A]]): Boolean

empty short-circuits throughout its join tree.

empty short-circuits throughout its join tree.

Inherited methods

def apLikeDerived[A, B](fa: F[A], f: F[A => B])(implicit FB: Equal[F[B]]): Boolean

ap is consistent with bind.

ap is consistent with bind.

Inherited from
BindLaw
def associative[A](f1: F[A], f2: F[A], f3: F[A])(implicit FA: Equal[F[A]]): Boolean
Inherited from
PlusLaw
def associativeBind[A, B, C](fa: F[A], f: A => F[B], g: B => F[C])(implicit FC: Equal[F[C]]): Boolean

As with semigroups, monadic effects only change when their order is changed, not when the order in which they're combined changes.

As with semigroups, monadic effects only change when their order is changed, not when the order in which they're combined changes.

Inherited from
BindLaw
def composite[A, B, C](fa: F[A], f1: A => B, f2: B => C)(implicit FC: Equal[F[C]]): Boolean

A series of maps may be freely rewritten as a single map on a composed function.

A series of maps may be freely rewritten as a single map on a composed function.

Inherited from
FunctorLaw
def composition[A, B, C](fbc: F[B => C], fab: F[A => B], fa: F[A])(implicit FC: Equal[F[C]]): Boolean

Lifted functions can be fused.

Lifted functions can be fused.

Inherited from
ApplyLaw
def emptyMap[A](f1: A => A)(implicit FA: Equal[F[A]]): Boolean

empty[A] is a polymorphic value over A.

empty[A] is a polymorphic value over A.

Inherited from
MonadPlusLaw
def homomorphism[A, B](ab: A => B, a: A)(implicit FB: Equal[F[B]]): Boolean

point distributes over function applications.

point distributes over function applications.

Inherited from
ApplicativeLaw
def identity[A](fa: F[A])(implicit FA: Equal[F[A]]): Boolean

The identity function, lifted, is a no-op.

The identity function, lifted, is a no-op.

Inherited from
FunctorLaw
def identityAp[A](fa: F[A])(implicit FA: Equal[F[A]]): Boolean

point(identity) is a no-op.

point(identity) is a no-op.

Inherited from
ApplicativeLaw
def interchange[A, B](f: F[A => B], a: A)(implicit FB: Equal[F[B]]): Boolean

point is a left and right identity, F-wise.

point is a left and right identity, F-wise.

Inherited from
ApplicativeLaw
def invariantComposite[A, B, C](fa: F[A], f1: A => B, g1: B => A, f2: B => C, g2: C => B)(implicit FC: Equal[F[C]]): Boolean
Inherited from
InvariantFunctorLaw
def invariantIdentity[A](fa: F[A])(implicit FA: Equal[F[A]]): Boolean
Inherited from
InvariantFunctorLaw
def leftIdentity[A, B](a: A, f: A => F[B])(implicit FB: Equal[F[B]]): Boolean

Lifted f applied to pure a is just f(a).

Lifted f applied to pure a is just f(a).

Inherited from
MonadLaw
def leftPlusIdentity[A](f1: F[A])(implicit FA: Equal[F[A]]): Boolean
Inherited from
EmptyLaw
def leftZero[A](f: A => F[A])(implicit FA: Equal[F[A]]): Boolean

empty short-circuits its right.

empty short-circuits its right.

Inherited from
MonadPlusLaw
def mapLikeDerived[A, B](f: A => B, fa: F[A])(implicit FB: Equal[F[B]]): Boolean

map is like the one derived from point and ap.

map is like the one derived from point and ap.

Inherited from
ApplicativeLaw
def rightIdentity[A](a: F[A])(implicit FA: Equal[F[A]]): Boolean

Lifted point is a no-op.

Lifted point is a no-op.

Inherited from
MonadLaw
def rightPlusIdentity[A](f1: F[A])(implicit FA: Equal[F[A]]): Boolean
Inherited from
EmptyLaw