module Hedgehog.Extras.Stock.Monad ( forceM ) where import Control.DeepSeq (NFData, force) import Control.Monad -- | Force the evaluation of the return value in a monadic computation. forceM :: (Monad m, NFData a) => m a -> m a forceM :: forall (m :: * -> *) a. (Monad m, NFData a) => m a -> m a forceM = (forall a. NFData a => a -> a force forall (m :: * -> *) a b. Monad m => (a -> b) -> m a -> m b <$!>)