ZLaws[CapsF, Caps, R] describes a set of laws that a parameterized type
F[A] with capabilities CapsF is expected to satisfy with respect to all
types A that have capabilities Caps. Laws can be run by providing a
GenF that is capable of generating F[A] values given a generator of A
values and a generator of values of some type A. Laws can be combined using
+ to produce a set of laws that require both sets of laws to be satisfied.
ZLaws[CapsF, Caps, R]describes a set of laws that a parameterized typeF[A]with capabilitiesCapsFis expected to satisfy with respect to all typesAthat have capabilitiesCaps. Laws can be run by providing aGenFthat is capable of generatingF[A]values given a generator ofAvalues and a generator of values of some typeA. Laws can be combined using+to produce a set of laws that require both sets of laws to be satisfied.