scalaprops.scalazlaws.align.scala Maven / Gradle / Ivy
package scalaprops
package scalazlaws
import scalaprops.Property.forAll
import scalaprops.Properties.properties
import scalaz._
object align {
def collapse[F[_], A](implicit F: Align[F], E: Equal[F[A \&/ A]], A: Gen[F[A]]) =
forAll(F.alignLaw.collapse[A] _)
def laws[F[_]](implicit F: Align[F], af: Gen[F[Int]],
e: Equal[F[Int]], ef: Equal[F[Int \&/ Int]]) = properties(ScalazLaw.align)(
ScalazLaw.alignCollapse -> collapse[F, Int]
)
def all[F[_]: Align](implicit af: Gen[F[Int]],
e: Equal[F[Int]], ef: Equal[F[Int \&/ Int]]) =
Properties.fromProps(ScalazLaw.alignAll, functor.all[F], align.laws[F])
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy