{-# LANGUAGE CPP #-} #if !defined(mingw32_HOST_OS) {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} # if __GLASGOW_HASKELL__ >= 702 {-# LANGUAGE DeriveGeneric #-} # endif {-# OPTIONS_GHC -fno-warn-orphans #-} #endif {-| Module: Instances.System.Posix Copyright: (C) 2014-2017 Ryan Scott License: BSD-style (see the file LICENSE) Maintainer: Ryan Scott Stability: Provisional Portability: GHC Provides 'Arbitrary' instances for data types in the @unix@ library. -} module Instances.System.Posix () where #if !defined(mingw32_HOST_OS) # if __GLASGOW_HASKELL__ >= 704 import GHC.Generics (Generic) # else import qualified Generics.Deriving.TH as Generics (deriveAll0) # endif import Instances.Miscellaneous () import Instances.Utils.GenericArbitrary (genericArbitrary) import Prelude () import Prelude.Compat import System.Posix.DynamicLinker (RTLDFlags(..), DL(..)) import System.Posix.Process (ProcessStatus(..)) import System.Posix.User (GroupEntry(..), UserEntry(..)) import Test.QuickCheck (Arbitrary(..), arbitraryBoundedEnum) deriving instance Bounded RTLDFlags deriving instance Enum RTLDFlags instance Arbitrary RTLDFlags where arbitrary = arbitraryBoundedEnum instance Arbitrary DL where arbitrary = genericArbitrary instance Arbitrary ProcessStatus where arbitrary = genericArbitrary instance Arbitrary GroupEntry where arbitrary = genericArbitrary instance Arbitrary UserEntry where arbitrary = genericArbitrary # if __GLASGOW_HASKELL__ >= 704 deriving instance Generic DL deriving instance Generic ProcessStatus deriving instance Generic GroupEntry deriving instance Generic UserEntry # else $(Generics.deriveAll0 ''DL) $(Generics.deriveAll0 ''ProcessStatus) $(Generics.deriveAll0 ''GroupEntry) $(Generics.deriveAll0 ''UserEntry) # endif #endif