t-regex-0.1.0.0: src/Test/QuickCheck/Arbitrary1.hs
module Test.QuickCheck.Arbitrary1 (
Arbitrary1(..)
) where
import Control.Applicative
import Test.QuickCheck
-- | Version of 'Arbitrary' for functors.
class Arbitrary1 f where
arbitrary1 :: Gen a -> Gen (f a)
-- From QuickCheck source
instance Arbitrary1 [] where
arbitrary1 g = sized $ \n ->
do k <- choose (0,n)
sequence [ g | _ <- [1..k] ]
instance Arbitrary1 Maybe where
arbitrary1 g = frequency [(1, return Nothing), (3, Just <$> g)]