purescript / purescript-quickcheck

An implementation of QuickCheck in PureScript

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

(Testable prop) => Testable (Gen prop)

DavidHarrison opened this issue · comments

Haskell's QuickCheck defines the instance

(Testable prop) => Testable (Gen prop)

When trying to define it for PureScript's QuickCheck, after expanding all of the type synonyms I get

(Testable prop) => Testable (StateT Identity {newSeed :: Seed, size :: Int} prop)

which gives the error:

Type class instance head is invalid due to use of type

  ( size :: Int
  , newSeed :: Seed
  )

All types appearing in instance declarations must be of the form T a_1 .. a_n, where each type a_i is of the same form.

Have there been any thoughts on defining the instance?

👍 I'd like to have this defined too. Maybe we need to change Gen into a newtype.