package scalaprops package scalazlaws import scalaprops.Property.forAll import scalaprops.Properties.properties import scalaz._ object semilattice { def commutative[A: Equal: Gen](implicit A: SemiLattice[A]): Property = forAll(A.semiLatticeLaw.commutative _) def laws[A: SemiLattice: Equal: Gen]: Properties[ScalazLaw] = properties(ScalazLaw.semilattice) ( ScalazLaw.semilatticeCommutative -> commutative[A] ) def all[A: SemiLattice: Equal: Gen]: Properties[ScalazLaw] = Properties.fromProps(ScalazLaw.semilatticeAll, band.all[A], semilattice.laws[A]) }