MonadLaw

trait MonadLaw extends ApplicativeLaw with BindLaw
trait BindLaw
trait ApplyLaw
class Object
trait Matchable
class Any

Value members

Concrete methods

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).

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 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 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 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 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