package scalaprops package scalazlaws import scalaz._ object profunctor { def laws[F[_, _]](implicit F: Profunctor[F], A1: Gen[F[Int, Int]], A2: Equal[F[Int, Int]]): Properties[ScalazLaw] = { implicit val a = F.covariantInstance[Int] implicit val b = F.contravariantInstance[Int] Properties.fromProps( ScalazLaw.profunctor, scalazlaws.functor.all[({type l[a] = F[Int, a]})#l], scalazlaws.contravariant.all[({type l[a] = F[a, Int]})#l] ) } def all[F[_, _]](implicit F: Profunctor[F], A1: Gen[F[Int, Int]], A2: Equal[F[Int, Int]]): Properties[ScalazLaw] = laws[F] }