{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE LambdaCase #-}
module GHC.Types.PkgQual where
import GHC.Prelude
import GHC.Types.SourceText
import GHC.Unit.Types
import GHC.Utils.Outputable
import Data.Data
data RawPkgQual
= NoRawPkgQual
| RawPkgQual StringLiteral
deriving (Typeable RawPkgQual
RawPkgQual -> DataType
RawPkgQual -> Constr
(forall b. Data b => b -> b) -> RawPkgQual -> RawPkgQual
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) -> RawPkgQual -> u
forall u. (forall d. Data d => d -> u) -> RawPkgQual -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> RawPkgQual -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> RawPkgQual -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> RawPkgQual -> m RawPkgQual
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> RawPkgQual -> m RawPkgQual
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c RawPkgQual
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> RawPkgQual -> c RawPkgQual
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c RawPkgQual)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RawPkgQual)
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> RawPkgQual -> m RawPkgQual
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> RawPkgQual -> m RawPkgQual
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> RawPkgQual -> m RawPkgQual
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> RawPkgQual -> m RawPkgQual
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> RawPkgQual -> m RawPkgQual
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> RawPkgQual -> m RawPkgQual
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> RawPkgQual -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> RawPkgQual -> u
gmapQ :: forall u. (forall d. Data d => d -> u) -> RawPkgQual -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> RawPkgQual -> [u]
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> RawPkgQual -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> RawPkgQual -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> RawPkgQual -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> RawPkgQual -> r
gmapT :: (forall b. Data b => b -> b) -> RawPkgQual -> RawPkgQual
$cgmapT :: (forall b. Data b => b -> b) -> RawPkgQual -> RawPkgQual
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RawPkgQual)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RawPkgQual)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c RawPkgQual)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c RawPkgQual)
dataTypeOf :: RawPkgQual -> DataType
$cdataTypeOf :: RawPkgQual -> DataType
toConstr :: RawPkgQual -> Constr
$ctoConstr :: RawPkgQual -> Constr
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c RawPkgQual
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c RawPkgQual
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> RawPkgQual -> c RawPkgQual
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> RawPkgQual -> c RawPkgQual
Data)
data PkgQual
= NoPkgQual
| ThisPkg UnitId
| OtherPkg UnitId
deriving (Typeable PkgQual
PkgQual -> DataType
PkgQual -> Constr
(forall b. Data b => b -> b) -> PkgQual -> PkgQual
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) -> PkgQual -> u
forall u. (forall d. Data d => d -> u) -> PkgQual -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PkgQual -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PkgQual -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PkgQual -> m PkgQual
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PkgQual -> m PkgQual
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PkgQual
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PkgQual -> c PkgQual
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PkgQual)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PkgQual)
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PkgQual -> m PkgQual
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PkgQual -> m PkgQual
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PkgQual -> m PkgQual
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> PkgQual -> m PkgQual
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PkgQual -> m PkgQual
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> PkgQual -> m PkgQual
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> PkgQual -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> PkgQual -> u
gmapQ :: forall u. (forall d. Data d => d -> u) -> PkgQual -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> PkgQual -> [u]
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PkgQual -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> PkgQual -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PkgQual -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> PkgQual -> r
gmapT :: (forall b. Data b => b -> b) -> PkgQual -> PkgQual
$cgmapT :: (forall b. Data b => b -> b) -> PkgQual -> PkgQual
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PkgQual)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PkgQual)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PkgQual)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c PkgQual)
dataTypeOf :: PkgQual -> DataType
$cdataTypeOf :: PkgQual -> DataType
toConstr :: PkgQual -> Constr
$ctoConstr :: PkgQual -> Constr
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PkgQual
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c PkgQual
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PkgQual -> c PkgQual
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> PkgQual -> c PkgQual
Data, Eq PkgQual
PkgQual -> PkgQual -> Bool
PkgQual -> PkgQual -> Ordering
PkgQual -> PkgQual -> PkgQual
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: PkgQual -> PkgQual -> PkgQual
$cmin :: PkgQual -> PkgQual -> PkgQual
max :: PkgQual -> PkgQual -> PkgQual
$cmax :: PkgQual -> PkgQual -> PkgQual
>= :: PkgQual -> PkgQual -> Bool
$c>= :: PkgQual -> PkgQual -> Bool
> :: PkgQual -> PkgQual -> Bool
$c> :: PkgQual -> PkgQual -> Bool
<= :: PkgQual -> PkgQual -> Bool
$c<= :: PkgQual -> PkgQual -> Bool
< :: PkgQual -> PkgQual -> Bool
$c< :: PkgQual -> PkgQual -> Bool
compare :: PkgQual -> PkgQual -> Ordering
$ccompare :: PkgQual -> PkgQual -> Ordering
Ord, PkgQual -> PkgQual -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PkgQual -> PkgQual -> Bool
$c/= :: PkgQual -> PkgQual -> Bool
== :: PkgQual -> PkgQual -> Bool
$c== :: PkgQual -> PkgQual -> Bool
Eq)
instance Outputable RawPkgQual where
ppr :: RawPkgQual -> SDoc
ppr = \case
RawPkgQual
NoRawPkgQual -> SDoc
empty
RawPkgQual (StringLiteral SourceText
st FastString
p Maybe RealSrcSpan
_)
-> SourceText -> SDoc -> SDoc
pprWithSourceText SourceText
st (SDoc -> SDoc
doubleQuotes (FastString -> SDoc
ftext FastString
p))
instance Outputable PkgQual where
ppr :: PkgQual -> SDoc
ppr = \case
PkgQual
NoPkgQual -> SDoc
empty
ThisPkg UnitId
u -> SDoc -> SDoc
doubleQuotes (forall a. Outputable a => a -> SDoc
ppr UnitId
u)
OtherPkg UnitId
u -> SDoc -> SDoc
doubleQuotes (forall a. Outputable a => a -> SDoc
ppr UnitId
u)