module Test.QuickCheck.Bottoms (bottom,infiniteComp) where
import Test.QuickCheck
import Control.Monad (forever)
import System.IO.Unsafe
import Control.Concurrent
bottom :: Gen a
bottom :: Gen a
bottom = a -> Gen a
forall (m :: * -> *) a. Monad m => a -> m a
return a
forall a. HasCallStack => a
undefined
infiniteComp :: Gen a
infiniteComp :: Gen a
infiniteComp = a -> Gen a
forall (m :: * -> *) a. Monad m => a -> m a
return a
forall a. a
hang
hang :: a
hang :: a
hang = IO a -> a
forall a. IO a -> a
unsafePerformIO IO a
forall a. IO a
hangIO
hangIO :: IO a
hangIO :: IO a
hangIO = do
Any
_ <- IO () -> IO Any
forall (f :: * -> *) a b. Applicative f => f a -> f b
forever (IO () -> IO Any) -> IO () -> IO Any
forall a b. (a -> b) -> a -> b
$ Int -> IO ()
threadDelay Int
forall a. Bounded a => a
maxBound
a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return a
forall a. HasCallStack => a
undefined