# Control.Monad.Gen.Common

- Package
- purescript-gen
- Repository
- purescript/purescript-gen

### #genEither' Source

`genEither' :: forall m a b. MonadGen m => Number -> m a -> m b -> m (Either a b)`

Creates a generator that outputs `Either`

values, choosing a value from a
`Left`

or the `Right`

with adjustable bias. As the bias value increases,
the chance of returning a `Left`

value rises. A bias ≤ 0.0 will always
return `Right`

, a bias ≥ 1.0 will always return `Left`

.

### #genIdentity Source

`genIdentity :: forall m a. Functor m => m a -> m (Identity a)`

Creates a generator that outputs `Identity`

values, choosing a value from
another generator for the inner value.

### #genMaybe' Source

`genMaybe' :: forall m a. MonadGen m => Number -> m a -> m (Maybe a)`

Creates a generator that outputs `Maybe`

values, choosing a value from
another generator for the inner value, with an adjustable bias for how
often `Just`

is returned vs `Nothing`

. A bias ≤ 0.0 will always
return `Nothing`

, a bias ≥ 1.0 will always return `Just`

.

### #genNonEmpty Source

`genNonEmpty :: forall m a f. MonadRec m => MonadGen m => Unfoldable f => m a -> m (NonEmpty f a)`

Creates a generator that outputs `NonEmpty`

values, choosing values from a
generator for each of the items.

The size of the value will be determined by the current size state
for the generator. To generate a value of a particular size, use the
`resize`

function from the `MonadGen`

class first.