{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
module Distribution.Types.Mixin (
Mixin(..),
) where
import Distribution.Compat.Prelude
import Prelude ()
import Text.PrettyPrint ((<+>))
import Distribution.Parsec
import Distribution.Pretty
import Distribution.Types.IncludeRenaming
import Distribution.Types.PackageName
import qualified Distribution.Compat.CharParsing as P
data Mixin = Mixin { Mixin -> PackageName
mixinPackageName :: PackageName
, Mixin -> IncludeRenaming
mixinIncludeRenaming :: IncludeRenaming }
deriving (Int -> Mixin -> ShowS
[Mixin] -> ShowS
Mixin -> String
(Int -> Mixin -> ShowS)
-> (Mixin -> String) -> ([Mixin] -> ShowS) -> Show Mixin
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Mixin] -> ShowS
$cshowList :: [Mixin] -> ShowS
show :: Mixin -> String
$cshow :: Mixin -> String
showsPrec :: Int -> Mixin -> ShowS
$cshowsPrec :: Int -> Mixin -> ShowS
External instance of the constraint type Show IncludeRenaming
External instance of the constraint type Show PackageName
External instance of the constraint type Ord Int
Show, ReadPrec [Mixin]
ReadPrec Mixin
Int -> ReadS Mixin
ReadS [Mixin]
(Int -> ReadS Mixin)
-> ReadS [Mixin]
-> ReadPrec Mixin
-> ReadPrec [Mixin]
-> Read Mixin
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Mixin]
$creadListPrec :: ReadPrec [Mixin]
readPrec :: ReadPrec Mixin
$creadPrec :: ReadPrec Mixin
readList :: ReadS [Mixin]
$creadList :: ReadS [Mixin]
readsPrec :: Int -> ReadS Mixin
$creadsPrec :: Int -> ReadS Mixin
External instance of the constraint type Read IncludeRenaming
External instance of the constraint type Read PackageName
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 Mixin
Read, Mixin -> Mixin -> Bool
(Mixin -> Mixin -> Bool) -> (Mixin -> Mixin -> Bool) -> Eq Mixin
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Mixin -> Mixin -> Bool
$c/= :: Mixin -> Mixin -> Bool
== :: Mixin -> Mixin -> Bool
$c== :: Mixin -> Mixin -> Bool
External instance of the constraint type Eq IncludeRenaming
External instance of the constraint type Eq PackageName
Eq, Eq Mixin
Eq Mixin
-> (Mixin -> Mixin -> Ordering)
-> (Mixin -> Mixin -> Bool)
-> (Mixin -> Mixin -> Bool)
-> (Mixin -> Mixin -> Bool)
-> (Mixin -> Mixin -> Bool)
-> (Mixin -> Mixin -> Mixin)
-> (Mixin -> Mixin -> Mixin)
-> Ord Mixin
Mixin -> Mixin -> Bool
Mixin -> Mixin -> Ordering
Mixin -> Mixin -> Mixin
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 :: Mixin -> Mixin -> Mixin
$cmin :: Mixin -> Mixin -> Mixin
max :: Mixin -> Mixin -> Mixin
$cmax :: Mixin -> Mixin -> Mixin
>= :: Mixin -> Mixin -> Bool
$c>= :: Mixin -> Mixin -> Bool
> :: Mixin -> Mixin -> Bool
$c> :: Mixin -> Mixin -> Bool
<= :: Mixin -> Mixin -> Bool
$c<= :: Mixin -> Mixin -> Bool
< :: Mixin -> Mixin -> Bool
$c< :: Mixin -> Mixin -> Bool
compare :: Mixin -> Mixin -> Ordering
$ccompare :: Mixin -> Mixin -> Ordering
External instance of the constraint type Ord IncludeRenaming
External instance of the constraint type Ord PackageName
Instance of class: Eq of the constraint type Eq Mixin
Instance of class: Ord of the constraint type Ord Mixin
Instance of class: Eq of the constraint type Eq Mixin
Ord, Typeable, Typeable Mixin
DataType
Constr
Typeable Mixin
-> (forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Mixin -> c Mixin)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Mixin)
-> (Mixin -> Constr)
-> (Mixin -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Mixin))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Mixin))
-> ((forall b. Data b => b -> b) -> Mixin -> Mixin)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Mixin -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Mixin -> r)
-> (forall u. (forall d. Data d => d -> u) -> Mixin -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> Mixin -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Mixin -> m Mixin)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Mixin -> m Mixin)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Mixin -> m Mixin)
-> Data Mixin
Mixin -> DataType
Mixin -> Constr
(forall b. Data b => b -> b) -> Mixin -> Mixin
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Mixin -> c Mixin
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Mixin
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) -> Mixin -> u
forall u. (forall d. Data d => d -> u) -> Mixin -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Mixin -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Mixin -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Mixin -> m Mixin
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Mixin -> m Mixin
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Mixin
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Mixin -> c Mixin
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Mixin)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Mixin)
$cMixin :: Constr
$tMixin :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> Mixin -> m Mixin
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Mixin -> m Mixin
gmapMp :: (forall d. Data d => d -> m d) -> Mixin -> m Mixin
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Mixin -> m Mixin
gmapM :: (forall d. Data d => d -> m d) -> Mixin -> m Mixin
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Mixin -> m Mixin
gmapQi :: Int -> (forall d. Data d => d -> u) -> Mixin -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Mixin -> u
gmapQ :: (forall d. Data d => d -> u) -> Mixin -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> Mixin -> [u]
gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Mixin -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Mixin -> r
gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Mixin -> r
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Mixin -> r
gmapT :: (forall b. Data b => b -> b) -> Mixin -> Mixin
$cgmapT :: (forall b. Data b => b -> b) -> Mixin -> Mixin
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Mixin)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Mixin)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c Mixin)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Mixin)
dataTypeOf :: Mixin -> DataType
$cdataTypeOf :: Mixin -> DataType
toConstr :: Mixin -> Constr
$ctoConstr :: Mixin -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Mixin
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Mixin
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Mixin -> c Mixin
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Mixin -> c Mixin
External instance of the constraint type Data PackageName
External instance of the constraint type Data IncludeRenaming
Data, (forall x. Mixin -> Rep Mixin x)
-> (forall x. Rep Mixin x -> Mixin) -> Generic Mixin
forall x. Rep Mixin x -> Mixin
forall x. Mixin -> Rep Mixin x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Mixin x -> Mixin
$cfrom :: forall x. Mixin -> Rep Mixin x
Generic)
instance Binary Mixin
instance Structured Mixin
instance NFData Mixin where rnf :: Mixin -> ()
rnf = Mixin -> ()
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 PackageName
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 IncludeRenaming
Instance of class: Generic of the constraint type Generic Mixin
genericRnf
instance Pretty Mixin where
pretty :: Mixin -> Doc
pretty (Mixin PackageName
pkg_name IncludeRenaming
incl) = PackageName -> Doc
forall a. Pretty a => a -> Doc
External instance of the constraint type Pretty PackageName
pretty PackageName
pkg_name Doc -> Doc -> Doc
<+> IncludeRenaming -> Doc
forall a. Pretty a => a -> Doc
External instance of the constraint type Pretty IncludeRenaming
pretty IncludeRenaming
incl
instance Parsec Mixin where
parsec :: m Mixin
parsec = do
PackageName
mod_name <- m PackageName
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 PackageName
parsec
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
IncludeRenaming
incl <- m IncludeRenaming
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 IncludeRenaming
parsec
Mixin -> m Mixin
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 (PackageName -> IncludeRenaming -> Mixin
Mixin PackageName
mod_name IncludeRenaming
incl)