Invariant

abstract class Invariant[-CapsF[_[_]], -Caps[_], -R]

ZLawsF for invariant type constructors.

Companion:
object
class Object
trait Matchable
class Any
class Law1[CapsF, Caps]
class Law1ZIO[CapsF, Caps, R]
class Law2[CapsF, Caps]
class Law2ZIO[CapsF, Caps, R]
class Law3[CapsF, Caps]
class Law3ZIO[CapsF, Caps, R]
Invariant[CapsF, Caps, R]

Value members

Abstract methods

def run[R1 <: R & TestConfig, F[_] : CapsF, A : Caps](genF: GenF[R1, F], gen: Gen[R1, A])(implicit evidence$5: CapsF[F], evidence$6: Caps[A], trace: Trace): ZIO[R1, Nothing, TestResult]

Test that values of type F[+_] satisfy the laws using the specified function to construct a generator of F[A] values given a generator of A values.

Test that values of type F[+_] satisfy the laws using the specified function to construct a generator of F[A] values given a generator of A values.

Concrete methods

def +[CapsF1 <: ([x[_]] =>> CapsF[x]), Caps1 <: (Caps), R1 <: R](that: Invariant[CapsF1, Caps1, R1]): Invariant[CapsF1, Caps1, R1]

Combine these laws with the specified laws to produce a set of laws that require both sets of laws to be satisfied.

Combine these laws with the specified laws to produce a set of laws that require both sets of laws to be satisfied.