Inspiration Was Taken From the never published cats-check. Instances for Cats for scalacheck types. So all credit to erik-stripe and the last maintainer mdedetrich for their original work on this that helped me build this.
cats-scalacheck is published for scala 2.12 and 2.13, and scalajs 1.0.0. If you require scalajs 0.6 and/or scala 2.11, you may use the last version of this project: 0.2.0
To use cats-scalacheck in an existing SBT project, add the following dependency to your build.sbt:
libraryDependencies += "io.chrisdavenport" %% "cats-scalacheck" % "<version>"For use with scalajs 1.0.x:
libraryDependencies += "io.chrisdavenport" %%% "cats-scalacheck" % "<version>"import org.scalacheck._
import org.scalacheck.cats.implicits._
import cats.Applicative
import cats.implicits._
val apComposition: Gen[(Int, String)] = Applicative[Gen].product(
  Arbitrary.arbitrary[Int],
  Arbitrary.arbitrary[String]
)- Alternative[Gen]
- Monad[Gen]
- FunctorFilter[Gen]
- Monoid[A] => Monoid[Gen[A]]
- Semigroup[A] => Semigroup[Gen[A]]
- ContravariantSemigroupal[Cogen]
- MonoidK[Cogen]
This was necessary because scalacheck makes some of their instances package private that are required to roll these meaningfully.