Control.Monad.Gen
- Package
- purescript-gen
- Repository
- purescript/purescript-gen
#frequency Source
frequency :: forall m f a. MonadGen m => Foldable1 f => f (Tuple Number (m a)) -> m a
Creates a generator that outputs a value chosen from a selection of existing generators, where the selection has weight values for the probability of choice for each generator. The probability values will be normalised.
#unfoldable Source
unfoldable :: forall m f a. MonadRec m => MonadGen m => Unfoldable f => m a -> m (f a)
Creates a generator that produces unfoldable structures based on an existing generator for the elements.
The size of the unfoldable will be determined by the current size state
for the generator. To generate an unfoldable structure of a particular
size, use the resize
function from the MonadGen
class first.
Re-exports from Control.Monad.Gen.Class
#MonadGen Source
class (Monad m) <= MonadGen m where
A class for random generator implementations.
Instances should provide implementations for the generation functions that return choices with uniform probability.
See also Gen
in purescript-quickcheck
, which implements this
type class.
Members
chooseInt :: Int -> Int -> m Int
chooseFloat :: Number -> Number -> m Number
Chooses an floating point number in the specified (inclusive) range.
chooseBool :: m Boolean
Chooses a random boolean value.
resize :: forall a. (Size -> Size) -> m a -> m a
Modifies the size state for a random generator.
sized :: forall a. (Size -> m a) -> m a
Runs a generator, passing in the current size state.
Chooses an integer in the specified (inclusive) range.