Skip to content

Cats instances for Scalacheck Gen? #589

Open
@armanbilge

Description

Specifically, to help with this:

// There is only one overload for the `forall` that takes an explicit `Gen` parameter
// To use multiple `Gen` instances, compose them monadically before passing to `forall`
test("Multiple Gen form") {
// Compose into a single `Gen[(Int, Int)]`
val gen = for {
a <- Gen.posNum[Int]
b <- Gen.posNum[Int]
} yield (a, b)

Which is a reasonable setup IMO. Personally I'm just missing some of the handy combinators for composition. E.g. it would be nice to express that example using .product or .tupled instead of needing the multi-line for ... yield.

There's options like cats-scalacheck but it would be very convenient to be able to do this out-of-the-box.

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions