{-# LANGUAGE DeriveDataTypeable, OverloadedStrings #-} module Debian.Arch ( Arch(..) , ArchOS(..) , ArchCPU(..) , prettyArch , parseArch ) where import Data.Data (Data) import Data.Monoid ((<>)) import Data.Typeable (Typeable) import Text.PrettyPrint (Doc, text) data ArchOS = ArchOS String | ArchOSAny deriving (ArchOS -> ArchOS -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: ArchOS -> ArchOS -> Bool $c/= :: ArchOS -> ArchOS -> Bool == :: ArchOS -> ArchOS -> Bool $c== :: ArchOS -> ArchOS -> Bool Eq, Eq ArchOS ArchOS -> ArchOS -> Bool ArchOS -> ArchOS -> Ordering ArchOS -> ArchOS -> ArchOS 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 :: ArchOS -> ArchOS -> ArchOS $cmin :: ArchOS -> ArchOS -> ArchOS max :: ArchOS -> ArchOS -> ArchOS $cmax :: ArchOS -> ArchOS -> ArchOS >= :: ArchOS -> ArchOS -> Bool $c>= :: ArchOS -> ArchOS -> Bool > :: ArchOS -> ArchOS -> Bool $c> :: ArchOS -> ArchOS -> Bool <= :: ArchOS -> ArchOS -> Bool $c<= :: ArchOS -> ArchOS -> Bool < :: ArchOS -> ArchOS -> Bool $c< :: ArchOS -> ArchOS -> Bool compare :: ArchOS -> ArchOS -> Ordering $ccompare :: ArchOS -> ArchOS -> Ordering Ord, ReadPrec [ArchOS] ReadPrec ArchOS Int -> ReadS ArchOS ReadS [ArchOS] forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [ArchOS] $creadListPrec :: ReadPrec [ArchOS] readPrec :: ReadPrec ArchOS $creadPrec :: ReadPrec ArchOS readList :: ReadS [ArchOS] $creadList :: ReadS [ArchOS] readsPrec :: Int -> ReadS ArchOS $creadsPrec :: Int -> ReadS ArchOS Read, Int -> ArchOS -> ShowS [ArchOS] -> ShowS ArchOS -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [ArchOS] -> ShowS $cshowList :: [ArchOS] -> ShowS show :: ArchOS -> String $cshow :: ArchOS -> String showsPrec :: Int -> ArchOS -> ShowS $cshowsPrec :: Int -> ArchOS -> ShowS Show, Typeable ArchOS ArchOS -> DataType ArchOS -> Constr (forall b. Data b => b -> b) -> ArchOS -> ArchOS 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) -> ArchOS -> u forall u. (forall d. Data d => d -> u) -> ArchOS -> [u] forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ArchOS -> r forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ArchOS -> r forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> ArchOS -> m ArchOS forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ArchOS -> m ArchOS forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ArchOS forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ArchOS -> c ArchOS forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ArchOS) forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ArchOS) gmapMo :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ArchOS -> m ArchOS $cgmapMo :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ArchOS -> m ArchOS gmapMp :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ArchOS -> m ArchOS $cgmapMp :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ArchOS -> m ArchOS gmapM :: forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> ArchOS -> m ArchOS $cgmapM :: forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> ArchOS -> m ArchOS gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> ArchOS -> u $cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> ArchOS -> u gmapQ :: forall u. (forall d. Data d => d -> u) -> ArchOS -> [u] $cgmapQ :: forall u. (forall d. Data d => d -> u) -> ArchOS -> [u] gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ArchOS -> r $cgmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ArchOS -> r gmapQl :: forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ArchOS -> r $cgmapQl :: forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ArchOS -> r gmapT :: (forall b. Data b => b -> b) -> ArchOS -> ArchOS $cgmapT :: (forall b. Data b => b -> b) -> ArchOS -> ArchOS dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ArchOS) $cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ArchOS) dataCast1 :: forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ArchOS) $cdataCast1 :: forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ArchOS) dataTypeOf :: ArchOS -> DataType $cdataTypeOf :: ArchOS -> DataType toConstr :: ArchOS -> Constr $ctoConstr :: ArchOS -> Constr gunfold :: forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ArchOS $cgunfold :: forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ArchOS gfoldl :: forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ArchOS -> c ArchOS $cgfoldl :: forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ArchOS -> c ArchOS Data, Typeable) prettyOS :: ArchOS -> Doc prettyOS :: ArchOS -> Doc prettyOS (ArchOS String s) = String -> Doc text String s prettyOS ArchOS ArchOSAny = String -> Doc text String "any" parseOS :: String -> ArchOS parseOS :: String -> ArchOS parseOS String "any" = ArchOS ArchOSAny parseOS String s = String -> ArchOS ArchOS String s data ArchCPU = ArchCPU String | ArchCPUAny deriving (ArchCPU -> ArchCPU -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: ArchCPU -> ArchCPU -> Bool $c/= :: ArchCPU -> ArchCPU -> Bool == :: ArchCPU -> ArchCPU -> Bool $c== :: ArchCPU -> ArchCPU -> Bool Eq, Eq ArchCPU ArchCPU -> ArchCPU -> Bool ArchCPU -> ArchCPU -> Ordering ArchCPU -> ArchCPU -> ArchCPU 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 :: ArchCPU -> ArchCPU -> ArchCPU $cmin :: ArchCPU -> ArchCPU -> ArchCPU max :: ArchCPU -> ArchCPU -> ArchCPU $cmax :: ArchCPU -> ArchCPU -> ArchCPU >= :: ArchCPU -> ArchCPU -> Bool $c>= :: ArchCPU -> ArchCPU -> Bool > :: ArchCPU -> ArchCPU -> Bool $c> :: ArchCPU -> ArchCPU -> Bool <= :: ArchCPU -> ArchCPU -> Bool $c<= :: ArchCPU -> ArchCPU -> Bool < :: ArchCPU -> ArchCPU -> Bool $c< :: ArchCPU -> ArchCPU -> Bool compare :: ArchCPU -> ArchCPU -> Ordering $ccompare :: ArchCPU -> ArchCPU -> Ordering Ord, ReadPrec [ArchCPU] ReadPrec ArchCPU Int -> ReadS ArchCPU ReadS [ArchCPU] forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [ArchCPU] $creadListPrec :: ReadPrec [ArchCPU] readPrec :: ReadPrec ArchCPU $creadPrec :: ReadPrec ArchCPU readList :: ReadS [ArchCPU] $creadList :: ReadS [ArchCPU] readsPrec :: Int -> ReadS ArchCPU $creadsPrec :: Int -> ReadS ArchCPU Read, Int -> ArchCPU -> ShowS [ArchCPU] -> ShowS ArchCPU -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [ArchCPU] -> ShowS $cshowList :: [ArchCPU] -> ShowS show :: ArchCPU -> String $cshow :: ArchCPU -> String showsPrec :: Int -> ArchCPU -> ShowS $cshowsPrec :: Int -> ArchCPU -> ShowS Show, Typeable ArchCPU ArchCPU -> DataType ArchCPU -> Constr (forall b. Data b => b -> b) -> ArchCPU -> ArchCPU 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) -> ArchCPU -> u forall u. (forall d. Data d => d -> u) -> ArchCPU -> [u] forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ArchCPU -> r forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ArchCPU -> r forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> ArchCPU -> m ArchCPU forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ArchCPU -> m ArchCPU forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ArchCPU forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ArchCPU -> c ArchCPU forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ArchCPU) forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ArchCPU) gmapMo :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ArchCPU -> m ArchCPU $cgmapMo :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ArchCPU -> m ArchCPU gmapMp :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ArchCPU -> m ArchCPU $cgmapMp :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> ArchCPU -> m ArchCPU gmapM :: forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> ArchCPU -> m ArchCPU $cgmapM :: forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> ArchCPU -> m ArchCPU gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> ArchCPU -> u $cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> ArchCPU -> u gmapQ :: forall u. (forall d. Data d => d -> u) -> ArchCPU -> [u] $cgmapQ :: forall u. (forall d. Data d => d -> u) -> ArchCPU -> [u] gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ArchCPU -> r $cgmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ArchCPU -> r gmapQl :: forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ArchCPU -> r $cgmapQl :: forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ArchCPU -> r gmapT :: (forall b. Data b => b -> b) -> ArchCPU -> ArchCPU $cgmapT :: (forall b. Data b => b -> b) -> ArchCPU -> ArchCPU dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ArchCPU) $cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ArchCPU) dataCast1 :: forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ArchCPU) $cdataCast1 :: forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ArchCPU) dataTypeOf :: ArchCPU -> DataType $cdataTypeOf :: ArchCPU -> DataType toConstr :: ArchCPU -> Constr $ctoConstr :: ArchCPU -> Constr gunfold :: forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ArchCPU $cgunfold :: forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ArchCPU gfoldl :: forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ArchCPU -> c ArchCPU $cgfoldl :: forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ArchCPU -> c ArchCPU Data, Typeable) prettyCPU :: ArchCPU -> Doc prettyCPU :: ArchCPU -> Doc prettyCPU (ArchCPU String s) = String -> Doc text String s prettyCPU ArchCPU ArchCPUAny = String -> Doc text String "any" parseCPU :: String -> ArchCPU parseCPU :: String -> ArchCPU parseCPU String "any" = ArchCPU ArchCPUAny parseCPU String s = String -> ArchCPU ArchCPU String s data Arch = Source | All | Binary ArchOS ArchCPU deriving (Arch -> Arch -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Arch -> Arch -> Bool $c/= :: Arch -> Arch -> Bool == :: Arch -> Arch -> Bool $c== :: Arch -> Arch -> Bool Eq, Eq Arch Arch -> Arch -> Bool Arch -> Arch -> Ordering Arch -> Arch -> Arch 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 :: Arch -> Arch -> Arch $cmin :: Arch -> Arch -> Arch max :: Arch -> Arch -> Arch $cmax :: Arch -> Arch -> Arch >= :: Arch -> Arch -> Bool $c>= :: Arch -> Arch -> Bool > :: Arch -> Arch -> Bool $c> :: Arch -> Arch -> Bool <= :: Arch -> Arch -> Bool $c<= :: Arch -> Arch -> Bool < :: Arch -> Arch -> Bool $c< :: Arch -> Arch -> Bool compare :: Arch -> Arch -> Ordering $ccompare :: Arch -> Arch -> Ordering Ord, ReadPrec [Arch] ReadPrec Arch Int -> ReadS Arch ReadS [Arch] forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [Arch] $creadListPrec :: ReadPrec [Arch] readPrec :: ReadPrec Arch $creadPrec :: ReadPrec Arch readList :: ReadS [Arch] $creadList :: ReadS [Arch] readsPrec :: Int -> ReadS Arch $creadsPrec :: Int -> ReadS Arch Read, Int -> Arch -> ShowS [Arch] -> ShowS Arch -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Arch] -> ShowS $cshowList :: [Arch] -> ShowS show :: Arch -> String $cshow :: Arch -> String showsPrec :: Int -> Arch -> ShowS $cshowsPrec :: Int -> Arch -> ShowS Show, Typeable Arch Arch -> DataType Arch -> Constr (forall b. Data b => b -> b) -> Arch -> Arch 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) -> Arch -> u forall u. (forall d. Data d => d -> u) -> Arch -> [u] forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Arch -> r forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Arch -> r forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> Arch -> m Arch forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Arch -> m Arch forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Arch forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Arch -> c Arch forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Arch) forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Arch) gmapMo :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Arch -> m Arch $cgmapMo :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Arch -> m Arch gmapMp :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Arch -> m Arch $cgmapMp :: forall (m :: * -> *). MonadPlus m => (forall d. Data d => d -> m d) -> Arch -> m Arch gmapM :: forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> Arch -> m Arch $cgmapM :: forall (m :: * -> *). Monad m => (forall d. Data d => d -> m d) -> Arch -> m Arch gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Arch -> u $cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Arch -> u gmapQ :: forall u. (forall d. Data d => d -> u) -> Arch -> [u] $cgmapQ :: forall u. (forall d. Data d => d -> u) -> Arch -> [u] gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Arch -> r $cgmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Arch -> r gmapQl :: forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Arch -> r $cgmapQl :: forall r r'. (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Arch -> r gmapT :: (forall b. Data b => b -> b) -> Arch -> Arch $cgmapT :: (forall b. Data b => b -> b) -> Arch -> Arch dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Arch) $cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *). Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Arch) dataCast1 :: forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Arch) $cdataCast1 :: forall (t :: * -> *) (c :: * -> *). Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Arch) dataTypeOf :: Arch -> DataType $cdataTypeOf :: Arch -> DataType toConstr :: Arch -> Constr $ctoConstr :: Arch -> Constr gunfold :: forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Arch $cgunfold :: forall (c :: * -> *). (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Arch gfoldl :: forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Arch -> c Arch $cgfoldl :: forall (c :: * -> *). (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Arch -> c Arch Data, Typeable) prettyArch :: Arch -> Doc prettyArch :: Arch -> Doc prettyArch Arch Source = String -> Doc text String "source" prettyArch Arch All = String -> Doc text String "all" prettyArch (Binary (ArchOS String "linux") ArchCPU cpu) = ArchCPU -> Doc prettyCPU ArchCPU cpu prettyArch (Binary ArchOS os ArchCPU cpu) = ArchOS -> Doc prettyOS ArchOS os forall a. Semigroup a => a -> a -> a <> String -> Doc text String "-" forall a. Semigroup a => a -> a -> a <> ArchCPU -> Doc prettyCPU ArchCPU cpu parseArch :: String -> Arch parseArch :: String -> Arch parseArch String s = case forall a. (a -> Bool) -> [a] -> ([a], [a]) span (forall a. Eq a => a -> a -> Bool /= Char '-') String s of (String "source", String "") -> Arch Source (String "all", String "") -> Arch All (String cpu, String "") -> ArchOS -> ArchCPU -> Arch Binary (String -> ArchOS ArchOS String "linux") (String -> ArchCPU parseCPU String cpu) (String os, Char '-' : String cpu) -> ArchOS -> ArchCPU -> Arch Binary (String -> ArchOS parseOS String os) (String -> ArchCPU parseCPU String cpu) (String, String) _ -> forall a. HasCallStack => String -> a error String "parseArch: internal error"