text-show-1: tests/Instances/Control/Concurrent.hs
{-# LANGUAGE StandaloneDeriving #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-|
Module: Instances.Control.Concurrent
Copyright: (C) 2014-2015 Ryan Scott
License: BSD-style (see the file LICENSE)
Maintainer: Ryan Scott
Stability: Provisional
Portability: GHC
'Arbitrary' instances for data types in the "Control.Concurrent" module.
-}
module Instances.Control.Concurrent () where
import GHC.Conc (BlockReason(..), ThreadStatus(..))
import Prelude ()
import Prelude.Compat
import Test.QuickCheck (Arbitrary(..), arbitraryBoundedEnum, oneof)
deriving instance Bounded BlockReason
deriving instance Enum BlockReason
instance Arbitrary BlockReason where
arbitrary = arbitraryBoundedEnum
instance Arbitrary ThreadStatus where
arbitrary = oneof [ pure ThreadRunning
, pure ThreadFinished
, ThreadBlocked <$> arbitrary
, pure ThreadDied
]