module FlexTask.GenUtil (
  fromGen,
  ) where


import Control.Monad.Random             (MonadRandom(getRandom))
import Test.QuickCheck.Gen              (Gen(unGen))
import Test.QuickCheck.Random           (mkQCGen)



{- |
Convert a QuickCheck generator into a member of MonadRandom.
-}
fromGen :: MonadRandom m => Gen a -> m a
fromGen :: forall (m :: * -> *) a. MonadRandom m => Gen a -> m a
fromGen Gen a
gen = do
  seed <- m Int
forall a. Random a => m a
forall (m :: * -> *) a. (MonadRandom m, Random a) => m a
getRandom
  pure $ unGen gen (mkQCGen seed) 30