{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} module Distribution.Types.ConfVar ( ConfVar (..) ) where import Distribution.Compat.Prelude import Prelude () import Distribution.Compiler import Distribution.System import Distribution.Types.Flag import Distribution.Types.VersionRange -- | A @ConfVar@ represents the variable type used. data ConfVar = OS OS | Arch Arch | PackageFlag FlagName | Impl CompilerFlavor VersionRange deriving (ConfVar -> ConfVar -> Bool (ConfVar -> ConfVar -> Bool) -> (ConfVar -> ConfVar -> Bool) -> Eq ConfVar forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: ConfVar -> ConfVar -> Bool == :: ConfVar -> ConfVar -> Bool $c/= :: ConfVar -> ConfVar -> Bool /= :: ConfVar -> ConfVar -> Bool Eq, Int -> ConfVar -> ShowS [ConfVar] -> ShowS ConfVar -> String (Int -> ConfVar -> ShowS) -> (ConfVar -> String) -> ([ConfVar] -> ShowS) -> Show ConfVar forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> ConfVar -> ShowS showsPrec :: Int -> ConfVar -> ShowS $cshow :: ConfVar -> String show :: ConfVar -> String $cshowList :: [ConfVar] -> ShowS showList :: [ConfVar] -> ShowS Show, Typeable, Typeable ConfVar Typeable ConfVar => (forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ConfVar -> c ConfVar) -> (forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ConfVar) -> (ConfVar -> Constr) -> (ConfVar -> DataType) -> (forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ConfVar)) -> (forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ConfVar)) -> ((forall b. Data b => b -> b) -> ConfVar -> ConfVar) -> (forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ConfVar -> r) -> (forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ConfVar -> r) -> (forall u. (forall d. Data d => d -> u) -> ConfVar -> [u]) -> (forall u. Int -> (forall d. Data d => d -> u) -> ConfVar -> u) -> (forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> ConfVar -> m ConfVar) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ConfVar -> m ConfVar) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ConfVar -> m ConfVar) -> Data ConfVar ConfVar -> Constr ConfVar -> DataType (forall b. Data b => b -> b) -> ConfVar -> ConfVar forall a. Typeable a => (forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> a -> c a) -> (forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c a) -> (a -> Constr) -> (a -> DataType) -> (forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c a)) -> (forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a)) -> ((forall b. Data b => b -> b) -> a -> a) -> (forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r) -> (forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r) -> (forall u. (forall d. Data d => d -> u) -> a -> [u]) -> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u) -> (forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> a -> m a) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a) -> (forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> a -> m a) -> Data a forall u. Int -> (forall d. Data d => d -> u) -> ConfVar -> u forall u. (forall d. Data d => d -> u) -> ConfVar -> [u] forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ConfVar -> r forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ConfVar -> r forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> ConfVar -> m ConfVar forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ConfVar -> m ConfVar forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ConfVar forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ConfVar -> c ConfVar forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ConfVar) forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ConfVar) $cgfoldl :: forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ConfVar -> c ConfVar gfoldl :: forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ConfVar -> c ConfVar $cgunfold :: forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ConfVar gunfold :: forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ConfVar $ctoConstr :: ConfVar -> Constr toConstr :: ConfVar -> Constr $cdataTypeOf :: ConfVar -> DataType dataTypeOf :: ConfVar -> DataType $cdataCast1 :: forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ConfVar) dataCast1 :: forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ConfVar) $cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ConfVar) dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ConfVar) $cgmapT :: (forall b. Data b => b -> b) -> ConfVar -> ConfVar gmapT :: (forall b. Data b => b -> b) -> ConfVar -> ConfVar $cgmapQl :: forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ConfVar -> r gmapQl :: forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ConfVar -> r $cgmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ConfVar -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ConfVar -> r $cgmapQ :: forall u. (forall d. Data d => d -> u) -> ConfVar -> [u] gmapQ :: forall u. (forall d. Data d => d -> u) -> ConfVar -> [u] $cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> ConfVar -> u gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> ConfVar -> u $cgmapM :: forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> ConfVar -> m ConfVar gmapM :: forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> ConfVar -> m ConfVar $cgmapMp :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ConfVar -> m ConfVar gmapMp :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ConfVar -> m ConfVar $cgmapMo :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ConfVar -> m ConfVar gmapMo :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ConfVar -> m ConfVar Data, (forall x. ConfVar -> Rep ConfVar x) -> (forall x. Rep ConfVar x -> ConfVar) -> Generic ConfVar forall x. Rep ConfVar x -> ConfVar forall x. ConfVar -> Rep ConfVar x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. ConfVar -> Rep ConfVar x from :: forall x. ConfVar -> Rep ConfVar x $cto :: forall x. Rep ConfVar x -> ConfVar to :: forall x. Rep ConfVar x -> ConfVar Generic) instance Binary ConfVar instance Structured ConfVar instance NFData ConfVar where rnf :: ConfVar -> () rnf = ConfVar -> () forall a. (Generic a, GNFData (Rep a)) => a -> () genericRnf