{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
module Distribution.Types.IncludeRenaming (
IncludeRenaming(..),
defaultIncludeRenaming,
isDefaultIncludeRenaming,
) where
import Distribution.Compat.Prelude
import Prelude ()
import Distribution.Types.ModuleRenaming
import qualified Distribution.Compat.CharParsing as P
import Distribution.Parsec
import Distribution.Pretty
import Text.PrettyPrint (text, (<+>))
import qualified Text.PrettyPrint as Disp
data IncludeRenaming
= IncludeRenaming {
IncludeRenaming -> ModuleRenaming
includeProvidesRn :: ModuleRenaming,
IncludeRenaming -> ModuleRenaming
includeRequiresRn :: ModuleRenaming
}
deriving (Int -> IncludeRenaming -> ShowS
[IncludeRenaming] -> ShowS
IncludeRenaming -> String
(Int -> IncludeRenaming -> ShowS)
-> (IncludeRenaming -> String)
-> ([IncludeRenaming] -> ShowS)
-> Show IncludeRenaming
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IncludeRenaming] -> ShowS
$cshowList :: [IncludeRenaming] -> ShowS
show :: IncludeRenaming -> String
$cshow :: IncludeRenaming -> String
showsPrec :: Int -> IncludeRenaming -> ShowS
$cshowsPrec :: Int -> IncludeRenaming -> ShowS
External instance of the constraint type Show ModuleRenaming
External instance of the constraint type Show ModuleRenaming
External instance of the constraint type Ord Int
Show, ReadPrec [IncludeRenaming]
ReadPrec IncludeRenaming
Int -> ReadS IncludeRenaming
ReadS [IncludeRenaming]
(Int -> ReadS IncludeRenaming)
-> ReadS [IncludeRenaming]
-> ReadPrec IncludeRenaming
-> ReadPrec [IncludeRenaming]
-> Read IncludeRenaming
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [IncludeRenaming]
$creadListPrec :: ReadPrec [IncludeRenaming]
readPrec :: ReadPrec IncludeRenaming
$creadPrec :: ReadPrec IncludeRenaming
readList :: ReadS [IncludeRenaming]
$creadList :: ReadS [IncludeRenaming]
readsPrec :: Int -> ReadS IncludeRenaming
$creadsPrec :: Int -> ReadS IncludeRenaming
External instance of the constraint type Read ModuleRenaming
External instance of the constraint type Read ModuleRenaming
External instance of the constraint type Monad ReadPrec
External instance of the constraint type Monad ReadPrec
Instance of class: Read of the constraint type Read IncludeRenaming
Read, IncludeRenaming -> IncludeRenaming -> Bool
(IncludeRenaming -> IncludeRenaming -> Bool)
-> (IncludeRenaming -> IncludeRenaming -> Bool)
-> Eq IncludeRenaming
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: IncludeRenaming -> IncludeRenaming -> Bool
$c/= :: IncludeRenaming -> IncludeRenaming -> Bool
== :: IncludeRenaming -> IncludeRenaming -> Bool
$c== :: IncludeRenaming -> IncludeRenaming -> Bool
External instance of the constraint type Eq ModuleRenaming
External instance of the constraint type Eq ModuleRenaming
Eq, Eq IncludeRenaming
Eq IncludeRenaming
-> (IncludeRenaming -> IncludeRenaming -> Ordering)
-> (IncludeRenaming -> IncludeRenaming -> Bool)
-> (IncludeRenaming -> IncludeRenaming -> Bool)
-> (IncludeRenaming -> IncludeRenaming -> Bool)
-> (IncludeRenaming -> IncludeRenaming -> Bool)
-> (IncludeRenaming -> IncludeRenaming -> IncludeRenaming)
-> (IncludeRenaming -> IncludeRenaming -> IncludeRenaming)
-> Ord IncludeRenaming
IncludeRenaming -> IncludeRenaming -> Bool
IncludeRenaming -> IncludeRenaming -> Ordering
IncludeRenaming -> IncludeRenaming -> IncludeRenaming
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 :: IncludeRenaming -> IncludeRenaming -> IncludeRenaming
$cmin :: IncludeRenaming -> IncludeRenaming -> IncludeRenaming
max :: IncludeRenaming -> IncludeRenaming -> IncludeRenaming
$cmax :: IncludeRenaming -> IncludeRenaming -> IncludeRenaming
>= :: IncludeRenaming -> IncludeRenaming -> Bool
$c>= :: IncludeRenaming -> IncludeRenaming -> Bool
> :: IncludeRenaming -> IncludeRenaming -> Bool
$c> :: IncludeRenaming -> IncludeRenaming -> Bool
<= :: IncludeRenaming -> IncludeRenaming -> Bool
$c<= :: IncludeRenaming -> IncludeRenaming -> Bool
< :: IncludeRenaming -> IncludeRenaming -> Bool
$c< :: IncludeRenaming -> IncludeRenaming -> Bool
compare :: IncludeRenaming -> IncludeRenaming -> Ordering
$ccompare :: IncludeRenaming -> IncludeRenaming -> Ordering
External instance of the constraint type Ord ModuleRenaming
External instance of the constraint type Ord ModuleRenaming
External instance of the constraint type Ord ModuleRenaming
Instance of class: Eq of the constraint type Eq IncludeRenaming
Instance of class: Ord of the constraint type Ord IncludeRenaming
Instance of class: Eq of the constraint type Eq IncludeRenaming
Ord, Typeable, Typeable IncludeRenaming
DataType
Constr
Typeable IncludeRenaming
-> (forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IncludeRenaming -> c IncludeRenaming)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IncludeRenaming)
-> (IncludeRenaming -> Constr)
-> (IncludeRenaming -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IncludeRenaming))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IncludeRenaming))
-> ((forall b. Data b => b -> b)
-> IncludeRenaming -> IncludeRenaming)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IncludeRenaming -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IncludeRenaming -> r)
-> (forall u.
(forall d. Data d => d -> u) -> IncludeRenaming -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> IncludeRenaming -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IncludeRenaming -> m IncludeRenaming)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IncludeRenaming -> m IncludeRenaming)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IncludeRenaming -> m IncludeRenaming)
-> Data IncludeRenaming
IncludeRenaming -> DataType
IncludeRenaming -> Constr
(forall b. Data b => b -> b) -> IncludeRenaming -> IncludeRenaming
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IncludeRenaming -> c IncludeRenaming
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IncludeRenaming
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) -> IncludeRenaming -> u
forall u. (forall d. Data d => d -> u) -> IncludeRenaming -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IncludeRenaming -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IncludeRenaming -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IncludeRenaming -> m IncludeRenaming
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IncludeRenaming -> m IncludeRenaming
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IncludeRenaming
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IncludeRenaming -> c IncludeRenaming
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IncludeRenaming)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IncludeRenaming)
$cIncludeRenaming :: Constr
$tIncludeRenaming :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> IncludeRenaming -> m IncludeRenaming
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IncludeRenaming -> m IncludeRenaming
gmapMp :: (forall d. Data d => d -> m d)
-> IncludeRenaming -> m IncludeRenaming
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> IncludeRenaming -> m IncludeRenaming
gmapM :: (forall d. Data d => d -> m d)
-> IncludeRenaming -> m IncludeRenaming
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> IncludeRenaming -> m IncludeRenaming
gmapQi :: Int -> (forall d. Data d => d -> u) -> IncludeRenaming -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> IncludeRenaming -> u
gmapQ :: (forall d. Data d => d -> u) -> IncludeRenaming -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> IncludeRenaming -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IncludeRenaming -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> IncludeRenaming -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IncludeRenaming -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> IncludeRenaming -> r
gmapT :: (forall b. Data b => b -> b) -> IncludeRenaming -> IncludeRenaming
$cgmapT :: (forall b. Data b => b -> b) -> IncludeRenaming -> IncludeRenaming
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IncludeRenaming)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c IncludeRenaming)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c IncludeRenaming)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c IncludeRenaming)
dataTypeOf :: IncludeRenaming -> DataType
$cdataTypeOf :: IncludeRenaming -> DataType
toConstr :: IncludeRenaming -> Constr
$ctoConstr :: IncludeRenaming -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IncludeRenaming
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c IncludeRenaming
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IncludeRenaming -> c IncludeRenaming
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> IncludeRenaming -> c IncludeRenaming
External instance of the constraint type Data ModuleRenaming
External instance of the constraint type Data ModuleRenaming
External instance of the constraint type Data ModuleRenaming
Data, (forall x. IncludeRenaming -> Rep IncludeRenaming x)
-> (forall x. Rep IncludeRenaming x -> IncludeRenaming)
-> Generic IncludeRenaming
forall x. Rep IncludeRenaming x -> IncludeRenaming
forall x. IncludeRenaming -> Rep IncludeRenaming x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep IncludeRenaming x -> IncludeRenaming
$cfrom :: forall x. IncludeRenaming -> Rep IncludeRenaming x
Generic)
instance Binary IncludeRenaming
instance Structured IncludeRenaming
instance NFData IncludeRenaming where rnf :: IncludeRenaming -> ()
rnf = IncludeRenaming -> ()
forall a. (Generic a, GNFData (Rep a)) => a -> ()
External instance of the constraint type forall (a :: * -> *) i (c :: Meta). GNFData a => GNFData (M1 i c a)
External instance of the constraint type forall (a :: * -> *) i (c :: Meta). GNFData a => GNFData (M1 i c a)
External instance of the constraint type forall (a :: * -> *) (b :: * -> *).
(GNFData a, GNFData b) =>
GNFData (a :*: b)
External instance of the constraint type forall (a :: * -> *) i (c :: Meta). GNFData a => GNFData (M1 i c a)
External instance of the constraint type forall a i. NFData a => GNFData (K1 i a)
External instance of the constraint type NFData ModuleRenaming
External instance of the constraint type forall (a :: * -> *) i (c :: Meta). GNFData a => GNFData (M1 i c a)
External instance of the constraint type forall a i. NFData a => GNFData (K1 i a)
External instance of the constraint type NFData ModuleRenaming
Instance of class: Generic of the constraint type Generic IncludeRenaming
genericRnf
defaultIncludeRenaming :: IncludeRenaming
defaultIncludeRenaming :: IncludeRenaming
defaultIncludeRenaming = ModuleRenaming -> ModuleRenaming -> IncludeRenaming
IncludeRenaming ModuleRenaming
defaultRenaming ModuleRenaming
defaultRenaming
isDefaultIncludeRenaming :: IncludeRenaming -> Bool
isDefaultIncludeRenaming :: IncludeRenaming -> Bool
isDefaultIncludeRenaming (IncludeRenaming ModuleRenaming
p ModuleRenaming
r) = ModuleRenaming -> Bool
isDefaultRenaming ModuleRenaming
p Bool -> Bool -> Bool
&& ModuleRenaming -> Bool
isDefaultRenaming ModuleRenaming
r
instance Pretty IncludeRenaming where
pretty :: IncludeRenaming -> Doc
pretty (IncludeRenaming ModuleRenaming
prov_rn ModuleRenaming
req_rn) =
ModuleRenaming -> Doc
forall a. Pretty a => a -> Doc
External instance of the constraint type Pretty ModuleRenaming
pretty ModuleRenaming
prov_rn
Doc -> Doc -> Doc
<+> (if ModuleRenaming -> Bool
isDefaultRenaming ModuleRenaming
req_rn
then Doc
Disp.empty
else String -> Doc
text String
"requires" Doc -> Doc -> Doc
<+> ModuleRenaming -> Doc
forall a. Pretty a => a -> Doc
External instance of the constraint type Pretty ModuleRenaming
pretty ModuleRenaming
req_rn)
instance Parsec IncludeRenaming where
parsec :: m IncludeRenaming
parsec = do
ModuleRenaming
prov_rn <- m ModuleRenaming
forall a (m :: * -> *). (Parsec a, CabalParsing m) => m a
Evidence bound by a type signature of the constraint type CabalParsing m
External instance of the constraint type Parsec ModuleRenaming
parsec
ModuleRenaming
req_rn <- ModuleRenaming -> m ModuleRenaming -> m ModuleRenaming
forall (m :: * -> *) a. Alternative m => a -> m a -> m a
External instance of the constraint type forall (m :: * -> *). Parsing m => Alternative m
External instance of the constraint type forall (m :: * -> *). CharParsing m => Parsing m
External instance of the constraint type forall (m :: * -> *). CabalParsing m => CharParsing m
Evidence bound by a type signature of the constraint type CabalParsing m
P.option ModuleRenaming
defaultRenaming (m ModuleRenaming -> m ModuleRenaming)
-> m ModuleRenaming -> m ModuleRenaming
forall a b. (a -> b) -> a -> b
$ m ModuleRenaming -> m ModuleRenaming
forall (m :: * -> *) a. Parsing m => m a -> m a
External instance of the constraint type forall (m :: * -> *). CharParsing m => Parsing m
External instance of the constraint type forall (m :: * -> *). CabalParsing m => CharParsing m
Evidence bound by a type signature of the constraint type CabalParsing m
P.try (m ModuleRenaming -> m ModuleRenaming)
-> m ModuleRenaming -> m ModuleRenaming
forall a b. (a -> b) -> a -> b
$ do
m ()
forall (m :: * -> *). CharParsing m => m ()
External instance of the constraint type forall (m :: * -> *). CabalParsing m => CharParsing m
Evidence bound by a type signature of the constraint type CabalParsing m
P.spaces
String
_ <- String -> m String
forall (m :: * -> *). CharParsing m => String -> m String
External instance of the constraint type forall (m :: * -> *). CabalParsing m => CharParsing m
Evidence bound by a type signature of the constraint type CabalParsing m
P.string String
"requires"
m ()
forall (m :: * -> *). CharParsing m => m ()
External instance of the constraint type forall (m :: * -> *). CabalParsing m => CharParsing m
Evidence bound by a type signature of the constraint type CabalParsing m
P.spaces
m ModuleRenaming
forall a (m :: * -> *). (Parsec a, CabalParsing m) => m a
Evidence bound by a type signature of the constraint type CabalParsing m
External instance of the constraint type Parsec ModuleRenaming
parsec
IncludeRenaming -> m IncludeRenaming
forall (m :: * -> *) a. Monad m => a -> m a
External instance of the constraint type forall (m :: * -> *). MonadPlus m => Monad m
External instance of the constraint type forall (m :: * -> *). CabalParsing m => MonadPlus m
Evidence bound by a type signature of the constraint type CabalParsing m
return (ModuleRenaming -> ModuleRenaming -> IncludeRenaming
IncludeRenaming ModuleRenaming
prov_rn ModuleRenaming
req_rn)