module Test.QuickCheck.Instances.Maybe (maybeGen) where

import Test.QuickCheck

maybeGen :: Gen a -> Gen (Maybe a)
maybeGen :: Gen a -> Gen (Maybe a)
maybeGen Gen a
x = [Gen (Maybe a)] -> Gen (Maybe a)
forall a. [Gen a] -> Gen a
oneof [Maybe a -> Gen (Maybe a)
forall (f :: * -> *) a. Applicative f => a -> f a
pure Maybe a
forall a. Maybe a
Nothing
                   ,a -> Maybe a
forall a. a -> Maybe a
Just (a -> Maybe a) -> Gen a -> Gen (Maybe a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen a
x]