All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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