{-# LANGUAGE DeriveGeneric, DeriveDataTypeable, DefaultSignatures #-}
module CabalHelper.Shared.InterfaceTypes where
import GHC.Generics
import Data.Version
import Data.Map.Strict (Map)
data ChResponse
= ChResponseComponentsInfo (Map ChComponentName ChComponentInfo)
| ChResponseList [String]
| ChResponseLbi String
| ChResponseVersion (String, Version)
| ChResponseFlags [(String, Bool)]
deriving (ChResponse -> ChResponse -> Bool
(ChResponse -> ChResponse -> Bool)
-> (ChResponse -> ChResponse -> Bool) -> Eq ChResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ChResponse -> ChResponse -> Bool
$c/= :: ChResponse -> ChResponse -> Bool
== :: ChResponse -> ChResponse -> Bool
$c== :: ChResponse -> ChResponse -> Bool
Eq, Eq ChResponse
Eq ChResponse
-> (ChResponse -> ChResponse -> Ordering)
-> (ChResponse -> ChResponse -> Bool)
-> (ChResponse -> ChResponse -> Bool)
-> (ChResponse -> ChResponse -> Bool)
-> (ChResponse -> ChResponse -> Bool)
-> (ChResponse -> ChResponse -> ChResponse)
-> (ChResponse -> ChResponse -> ChResponse)
-> Ord ChResponse
ChResponse -> ChResponse -> Bool
ChResponse -> ChResponse -> Ordering
ChResponse -> ChResponse -> ChResponse
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 :: ChResponse -> ChResponse -> ChResponse
$cmin :: ChResponse -> ChResponse -> ChResponse
max :: ChResponse -> ChResponse -> ChResponse
$cmax :: ChResponse -> ChResponse -> ChResponse
>= :: ChResponse -> ChResponse -> Bool
$c>= :: ChResponse -> ChResponse -> Bool
> :: ChResponse -> ChResponse -> Bool
$c> :: ChResponse -> ChResponse -> Bool
<= :: ChResponse -> ChResponse -> Bool
$c<= :: ChResponse -> ChResponse -> Bool
< :: ChResponse -> ChResponse -> Bool
$c< :: ChResponse -> ChResponse -> Bool
compare :: ChResponse -> ChResponse -> Ordering
$ccompare :: ChResponse -> ChResponse -> Ordering
$cp1Ord :: Eq ChResponse
Ord, ReadPrec [ChResponse]
ReadPrec ChResponse
Int -> ReadS ChResponse
ReadS [ChResponse]
(Int -> ReadS ChResponse)
-> ReadS [ChResponse]
-> ReadPrec ChResponse
-> ReadPrec [ChResponse]
-> Read ChResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ChResponse]
$creadListPrec :: ReadPrec [ChResponse]
readPrec :: ReadPrec ChResponse
$creadPrec :: ReadPrec ChResponse
readList :: ReadS [ChResponse]
$creadList :: ReadS [ChResponse]
readsPrec :: Int -> ReadS ChResponse
$creadsPrec :: Int -> ReadS ChResponse
Read, Int -> ChResponse -> ShowS
[ChResponse] -> ShowS
ChResponse -> String
(Int -> ChResponse -> ShowS)
-> (ChResponse -> String)
-> ([ChResponse] -> ShowS)
-> Show ChResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ChResponse] -> ShowS
$cshowList :: [ChResponse] -> ShowS
show :: ChResponse -> String
$cshow :: ChResponse -> String
showsPrec :: Int -> ChResponse -> ShowS
$cshowsPrec :: Int -> ChResponse -> ShowS
Show, (forall x. ChResponse -> Rep ChResponse x)
-> (forall x. Rep ChResponse x -> ChResponse) -> Generic ChResponse
forall x. Rep ChResponse x -> ChResponse
forall x. ChResponse -> Rep ChResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ChResponse x -> ChResponse
$cfrom :: forall x. ChResponse -> Rep ChResponse x
Generic)
data ChComponentName = ChSetupHsName
| ChLibName ChLibraryName
| ChFLibName String
| ChExeName String
| ChTestName String
| ChBenchName String
deriving (ChComponentName -> ChComponentName -> Bool
(ChComponentName -> ChComponentName -> Bool)
-> (ChComponentName -> ChComponentName -> Bool)
-> Eq ChComponentName
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ChComponentName -> ChComponentName -> Bool
$c/= :: ChComponentName -> ChComponentName -> Bool
== :: ChComponentName -> ChComponentName -> Bool
$c== :: ChComponentName -> ChComponentName -> Bool
Eq, Eq ChComponentName
Eq ChComponentName
-> (ChComponentName -> ChComponentName -> Ordering)
-> (ChComponentName -> ChComponentName -> Bool)
-> (ChComponentName -> ChComponentName -> Bool)
-> (ChComponentName -> ChComponentName -> Bool)
-> (ChComponentName -> ChComponentName -> Bool)
-> (ChComponentName -> ChComponentName -> ChComponentName)
-> (ChComponentName -> ChComponentName -> ChComponentName)
-> Ord ChComponentName
ChComponentName -> ChComponentName -> Bool
ChComponentName -> ChComponentName -> Ordering
ChComponentName -> ChComponentName -> ChComponentName
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 :: ChComponentName -> ChComponentName -> ChComponentName
$cmin :: ChComponentName -> ChComponentName -> ChComponentName
max :: ChComponentName -> ChComponentName -> ChComponentName
$cmax :: ChComponentName -> ChComponentName -> ChComponentName
>= :: ChComponentName -> ChComponentName -> Bool
$c>= :: ChComponentName -> ChComponentName -> Bool
> :: ChComponentName -> ChComponentName -> Bool
$c> :: ChComponentName -> ChComponentName -> Bool
<= :: ChComponentName -> ChComponentName -> Bool
$c<= :: ChComponentName -> ChComponentName -> Bool
< :: ChComponentName -> ChComponentName -> Bool
$c< :: ChComponentName -> ChComponentName -> Bool
compare :: ChComponentName -> ChComponentName -> Ordering
$ccompare :: ChComponentName -> ChComponentName -> Ordering
$cp1Ord :: Eq ChComponentName
Ord, ReadPrec [ChComponentName]
ReadPrec ChComponentName
Int -> ReadS ChComponentName
ReadS [ChComponentName]
(Int -> ReadS ChComponentName)
-> ReadS [ChComponentName]
-> ReadPrec ChComponentName
-> ReadPrec [ChComponentName]
-> Read ChComponentName
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ChComponentName]
$creadListPrec :: ReadPrec [ChComponentName]
readPrec :: ReadPrec ChComponentName
$creadPrec :: ReadPrec ChComponentName
readList :: ReadS [ChComponentName]
$creadList :: ReadS [ChComponentName]
readsPrec :: Int -> ReadS ChComponentName
$creadsPrec :: Int -> ReadS ChComponentName
Read, Int -> ChComponentName -> ShowS
[ChComponentName] -> ShowS
ChComponentName -> String
(Int -> ChComponentName -> ShowS)
-> (ChComponentName -> String)
-> ([ChComponentName] -> ShowS)
-> Show ChComponentName
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ChComponentName] -> ShowS
$cshowList :: [ChComponentName] -> ShowS
show :: ChComponentName -> String
$cshow :: ChComponentName -> String
showsPrec :: Int -> ChComponentName -> ShowS
$cshowsPrec :: Int -> ChComponentName -> ShowS
Show, (forall x. ChComponentName -> Rep ChComponentName x)
-> (forall x. Rep ChComponentName x -> ChComponentName)
-> Generic ChComponentName
forall x. Rep ChComponentName x -> ChComponentName
forall x. ChComponentName -> Rep ChComponentName x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ChComponentName x -> ChComponentName
$cfrom :: forall x. ChComponentName -> Rep ChComponentName x
Generic)
data ChLibraryName = ChMainLibName
| ChSubLibName String
deriving (ChLibraryName -> ChLibraryName -> Bool
(ChLibraryName -> ChLibraryName -> Bool)
-> (ChLibraryName -> ChLibraryName -> Bool) -> Eq ChLibraryName
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ChLibraryName -> ChLibraryName -> Bool
$c/= :: ChLibraryName -> ChLibraryName -> Bool
== :: ChLibraryName -> ChLibraryName -> Bool
$c== :: ChLibraryName -> ChLibraryName -> Bool
Eq, Eq ChLibraryName
Eq ChLibraryName
-> (ChLibraryName -> ChLibraryName -> Ordering)
-> (ChLibraryName -> ChLibraryName -> Bool)
-> (ChLibraryName -> ChLibraryName -> Bool)
-> (ChLibraryName -> ChLibraryName -> Bool)
-> (ChLibraryName -> ChLibraryName -> Bool)
-> (ChLibraryName -> ChLibraryName -> ChLibraryName)
-> (ChLibraryName -> ChLibraryName -> ChLibraryName)
-> Ord ChLibraryName
ChLibraryName -> ChLibraryName -> Bool
ChLibraryName -> ChLibraryName -> Ordering
ChLibraryName -> ChLibraryName -> ChLibraryName
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 :: ChLibraryName -> ChLibraryName -> ChLibraryName
$cmin :: ChLibraryName -> ChLibraryName -> ChLibraryName
max :: ChLibraryName -> ChLibraryName -> ChLibraryName
$cmax :: ChLibraryName -> ChLibraryName -> ChLibraryName
>= :: ChLibraryName -> ChLibraryName -> Bool
$c>= :: ChLibraryName -> ChLibraryName -> Bool
> :: ChLibraryName -> ChLibraryName -> Bool
$c> :: ChLibraryName -> ChLibraryName -> Bool
<= :: ChLibraryName -> ChLibraryName -> Bool
$c<= :: ChLibraryName -> ChLibraryName -> Bool
< :: ChLibraryName -> ChLibraryName -> Bool
$c< :: ChLibraryName -> ChLibraryName -> Bool
compare :: ChLibraryName -> ChLibraryName -> Ordering
$ccompare :: ChLibraryName -> ChLibraryName -> Ordering
$cp1Ord :: Eq ChLibraryName
Ord, ReadPrec [ChLibraryName]
ReadPrec ChLibraryName
Int -> ReadS ChLibraryName
ReadS [ChLibraryName]
(Int -> ReadS ChLibraryName)
-> ReadS [ChLibraryName]
-> ReadPrec ChLibraryName
-> ReadPrec [ChLibraryName]
-> Read ChLibraryName
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ChLibraryName]
$creadListPrec :: ReadPrec [ChLibraryName]
readPrec :: ReadPrec ChLibraryName
$creadPrec :: ReadPrec ChLibraryName
readList :: ReadS [ChLibraryName]
$creadList :: ReadS [ChLibraryName]
readsPrec :: Int -> ReadS ChLibraryName
$creadsPrec :: Int -> ReadS ChLibraryName
Read, Int -> ChLibraryName -> ShowS
[ChLibraryName] -> ShowS
ChLibraryName -> String
(Int -> ChLibraryName -> ShowS)
-> (ChLibraryName -> String)
-> ([ChLibraryName] -> ShowS)
-> Show ChLibraryName
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ChLibraryName] -> ShowS
$cshowList :: [ChLibraryName] -> ShowS
show :: ChLibraryName -> String
$cshow :: ChLibraryName -> String
showsPrec :: Int -> ChLibraryName -> ShowS
$cshowsPrec :: Int -> ChLibraryName -> ShowS
Show, (forall x. ChLibraryName -> Rep ChLibraryName x)
-> (forall x. Rep ChLibraryName x -> ChLibraryName)
-> Generic ChLibraryName
forall x. Rep ChLibraryName x -> ChLibraryName
forall x. ChLibraryName -> Rep ChLibraryName x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ChLibraryName x -> ChLibraryName
$cfrom :: forall x. ChLibraryName -> Rep ChLibraryName x
Generic)
newtype ChModuleName = ChModuleName { ChModuleName -> String
unChModuleName :: String }
deriving (ChModuleName -> ChModuleName -> Bool
(ChModuleName -> ChModuleName -> Bool)
-> (ChModuleName -> ChModuleName -> Bool) -> Eq ChModuleName
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ChModuleName -> ChModuleName -> Bool
$c/= :: ChModuleName -> ChModuleName -> Bool
== :: ChModuleName -> ChModuleName -> Bool
$c== :: ChModuleName -> ChModuleName -> Bool
Eq, Eq ChModuleName
Eq ChModuleName
-> (ChModuleName -> ChModuleName -> Ordering)
-> (ChModuleName -> ChModuleName -> Bool)
-> (ChModuleName -> ChModuleName -> Bool)
-> (ChModuleName -> ChModuleName -> Bool)
-> (ChModuleName -> ChModuleName -> Bool)
-> (ChModuleName -> ChModuleName -> ChModuleName)
-> (ChModuleName -> ChModuleName -> ChModuleName)
-> Ord ChModuleName
ChModuleName -> ChModuleName -> Bool
ChModuleName -> ChModuleName -> Ordering
ChModuleName -> ChModuleName -> ChModuleName
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 :: ChModuleName -> ChModuleName -> ChModuleName
$cmin :: ChModuleName -> ChModuleName -> ChModuleName
max :: ChModuleName -> ChModuleName -> ChModuleName
$cmax :: ChModuleName -> ChModuleName -> ChModuleName
>= :: ChModuleName -> ChModuleName -> Bool
$c>= :: ChModuleName -> ChModuleName -> Bool
> :: ChModuleName -> ChModuleName -> Bool
$c> :: ChModuleName -> ChModuleName -> Bool
<= :: ChModuleName -> ChModuleName -> Bool
$c<= :: ChModuleName -> ChModuleName -> Bool
< :: ChModuleName -> ChModuleName -> Bool
$c< :: ChModuleName -> ChModuleName -> Bool
compare :: ChModuleName -> ChModuleName -> Ordering
$ccompare :: ChModuleName -> ChModuleName -> Ordering
$cp1Ord :: Eq ChModuleName
Ord, ReadPrec [ChModuleName]
ReadPrec ChModuleName
Int -> ReadS ChModuleName
ReadS [ChModuleName]
(Int -> ReadS ChModuleName)
-> ReadS [ChModuleName]
-> ReadPrec ChModuleName
-> ReadPrec [ChModuleName]
-> Read ChModuleName
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ChModuleName]
$creadListPrec :: ReadPrec [ChModuleName]
readPrec :: ReadPrec ChModuleName
$creadPrec :: ReadPrec ChModuleName
readList :: ReadS [ChModuleName]
$creadList :: ReadS [ChModuleName]
readsPrec :: Int -> ReadS ChModuleName
$creadsPrec :: Int -> ReadS ChModuleName
Read, Int -> ChModuleName -> ShowS
[ChModuleName] -> ShowS
ChModuleName -> String
(Int -> ChModuleName -> ShowS)
-> (ChModuleName -> String)
-> ([ChModuleName] -> ShowS)
-> Show ChModuleName
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ChModuleName] -> ShowS
$cshowList :: [ChModuleName] -> ShowS
show :: ChModuleName -> String
$cshow :: ChModuleName -> String
showsPrec :: Int -> ChModuleName -> ShowS
$cshowsPrec :: Int -> ChModuleName -> ShowS
Show, (forall x. ChModuleName -> Rep ChModuleName x)
-> (forall x. Rep ChModuleName x -> ChModuleName)
-> Generic ChModuleName
forall x. Rep ChModuleName x -> ChModuleName
forall x. ChModuleName -> Rep ChModuleName x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ChModuleName x -> ChModuleName
$cfrom :: forall x. ChModuleName -> Rep ChModuleName x
Generic)
data ChComponentInfo = ChComponentInfo
{ ChComponentInfo -> ChComponentName
ciComponentName :: ChComponentName
, ChComponentInfo -> [String]
ciGhcOptions :: [String]
, ChComponentInfo -> [String]
ciSourceDirs :: [String]
, ChComponentInfo -> ChEntrypoint
ciEntrypoints :: ChEntrypoint
} deriving (ChComponentInfo -> ChComponentInfo -> Bool
(ChComponentInfo -> ChComponentInfo -> Bool)
-> (ChComponentInfo -> ChComponentInfo -> Bool)
-> Eq ChComponentInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ChComponentInfo -> ChComponentInfo -> Bool
$c/= :: ChComponentInfo -> ChComponentInfo -> Bool
== :: ChComponentInfo -> ChComponentInfo -> Bool
$c== :: ChComponentInfo -> ChComponentInfo -> Bool
Eq, Eq ChComponentInfo
Eq ChComponentInfo
-> (ChComponentInfo -> ChComponentInfo -> Ordering)
-> (ChComponentInfo -> ChComponentInfo -> Bool)
-> (ChComponentInfo -> ChComponentInfo -> Bool)
-> (ChComponentInfo -> ChComponentInfo -> Bool)
-> (ChComponentInfo -> ChComponentInfo -> Bool)
-> (ChComponentInfo -> ChComponentInfo -> ChComponentInfo)
-> (ChComponentInfo -> ChComponentInfo -> ChComponentInfo)
-> Ord ChComponentInfo
ChComponentInfo -> ChComponentInfo -> Bool
ChComponentInfo -> ChComponentInfo -> Ordering
ChComponentInfo -> ChComponentInfo -> ChComponentInfo
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 :: ChComponentInfo -> ChComponentInfo -> ChComponentInfo
$cmin :: ChComponentInfo -> ChComponentInfo -> ChComponentInfo
max :: ChComponentInfo -> ChComponentInfo -> ChComponentInfo
$cmax :: ChComponentInfo -> ChComponentInfo -> ChComponentInfo
>= :: ChComponentInfo -> ChComponentInfo -> Bool
$c>= :: ChComponentInfo -> ChComponentInfo -> Bool
> :: ChComponentInfo -> ChComponentInfo -> Bool
$c> :: ChComponentInfo -> ChComponentInfo -> Bool
<= :: ChComponentInfo -> ChComponentInfo -> Bool
$c<= :: ChComponentInfo -> ChComponentInfo -> Bool
< :: ChComponentInfo -> ChComponentInfo -> Bool
$c< :: ChComponentInfo -> ChComponentInfo -> Bool
compare :: ChComponentInfo -> ChComponentInfo -> Ordering
$ccompare :: ChComponentInfo -> ChComponentInfo -> Ordering
$cp1Ord :: Eq ChComponentInfo
Ord, ReadPrec [ChComponentInfo]
ReadPrec ChComponentInfo
Int -> ReadS ChComponentInfo
ReadS [ChComponentInfo]
(Int -> ReadS ChComponentInfo)
-> ReadS [ChComponentInfo]
-> ReadPrec ChComponentInfo
-> ReadPrec [ChComponentInfo]
-> Read ChComponentInfo
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ChComponentInfo]
$creadListPrec :: ReadPrec [ChComponentInfo]
readPrec :: ReadPrec ChComponentInfo
$creadPrec :: ReadPrec ChComponentInfo
readList :: ReadS [ChComponentInfo]
$creadList :: ReadS [ChComponentInfo]
readsPrec :: Int -> ReadS ChComponentInfo
$creadsPrec :: Int -> ReadS ChComponentInfo
Read, Int -> ChComponentInfo -> ShowS
[ChComponentInfo] -> ShowS
ChComponentInfo -> String
(Int -> ChComponentInfo -> ShowS)
-> (ChComponentInfo -> String)
-> ([ChComponentInfo] -> ShowS)
-> Show ChComponentInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ChComponentInfo] -> ShowS
$cshowList :: [ChComponentInfo] -> ShowS
show :: ChComponentInfo -> String
$cshow :: ChComponentInfo -> String
showsPrec :: Int -> ChComponentInfo -> ShowS
$cshowsPrec :: Int -> ChComponentInfo -> ShowS
Show)
data ChEntrypoint
= ChSetupEntrypoint
{ ChEntrypoint -> String
chMainIs :: FilePath
}
| ChLibEntrypoint
{ ChEntrypoint -> [ChModuleName]
chExposedModules :: [ChModuleName]
, ChEntrypoint -> [ChModuleName]
chOtherModules :: [ChModuleName]
, ChEntrypoint -> [ChModuleName]
chSignatures :: [ChModuleName]
}
| ChExeEntrypoint
{ chMainIs :: FilePath
, chOtherModules :: [ChModuleName]
} deriving (ChEntrypoint -> ChEntrypoint -> Bool
(ChEntrypoint -> ChEntrypoint -> Bool)
-> (ChEntrypoint -> ChEntrypoint -> Bool) -> Eq ChEntrypoint
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ChEntrypoint -> ChEntrypoint -> Bool
$c/= :: ChEntrypoint -> ChEntrypoint -> Bool
== :: ChEntrypoint -> ChEntrypoint -> Bool
$c== :: ChEntrypoint -> ChEntrypoint -> Bool
Eq, Eq ChEntrypoint
Eq ChEntrypoint
-> (ChEntrypoint -> ChEntrypoint -> Ordering)
-> (ChEntrypoint -> ChEntrypoint -> Bool)
-> (ChEntrypoint -> ChEntrypoint -> Bool)
-> (ChEntrypoint -> ChEntrypoint -> Bool)
-> (ChEntrypoint -> ChEntrypoint -> Bool)
-> (ChEntrypoint -> ChEntrypoint -> ChEntrypoint)
-> (ChEntrypoint -> ChEntrypoint -> ChEntrypoint)
-> Ord ChEntrypoint
ChEntrypoint -> ChEntrypoint -> Bool
ChEntrypoint -> ChEntrypoint -> Ordering
ChEntrypoint -> ChEntrypoint -> ChEntrypoint
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 :: ChEntrypoint -> ChEntrypoint -> ChEntrypoint
$cmin :: ChEntrypoint -> ChEntrypoint -> ChEntrypoint
max :: ChEntrypoint -> ChEntrypoint -> ChEntrypoint
$cmax :: ChEntrypoint -> ChEntrypoint -> ChEntrypoint
>= :: ChEntrypoint -> ChEntrypoint -> Bool
$c>= :: ChEntrypoint -> ChEntrypoint -> Bool
> :: ChEntrypoint -> ChEntrypoint -> Bool
$c> :: ChEntrypoint -> ChEntrypoint -> Bool
<= :: ChEntrypoint -> ChEntrypoint -> Bool
$c<= :: ChEntrypoint -> ChEntrypoint -> Bool
< :: ChEntrypoint -> ChEntrypoint -> Bool
$c< :: ChEntrypoint -> ChEntrypoint -> Bool
compare :: ChEntrypoint -> ChEntrypoint -> Ordering
$ccompare :: ChEntrypoint -> ChEntrypoint -> Ordering
$cp1Ord :: Eq ChEntrypoint
Ord, ReadPrec [ChEntrypoint]
ReadPrec ChEntrypoint
Int -> ReadS ChEntrypoint
ReadS [ChEntrypoint]
(Int -> ReadS ChEntrypoint)
-> ReadS [ChEntrypoint]
-> ReadPrec ChEntrypoint
-> ReadPrec [ChEntrypoint]
-> Read ChEntrypoint
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ChEntrypoint]
$creadListPrec :: ReadPrec [ChEntrypoint]
readPrec :: ReadPrec ChEntrypoint
$creadPrec :: ReadPrec ChEntrypoint
readList :: ReadS [ChEntrypoint]
$creadList :: ReadS [ChEntrypoint]
readsPrec :: Int -> ReadS ChEntrypoint
$creadsPrec :: Int -> ReadS ChEntrypoint
Read, Int -> ChEntrypoint -> ShowS
[ChEntrypoint] -> ShowS
ChEntrypoint -> String
(Int -> ChEntrypoint -> ShowS)
-> (ChEntrypoint -> String)
-> ([ChEntrypoint] -> ShowS)
-> Show ChEntrypoint
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ChEntrypoint] -> ShowS
$cshowList :: [ChEntrypoint] -> ShowS
show :: ChEntrypoint -> String
$cshow :: ChEntrypoint -> String
showsPrec :: Int -> ChEntrypoint -> ShowS
$cshowsPrec :: Int -> ChEntrypoint -> ShowS
Show, (forall x. ChEntrypoint -> Rep ChEntrypoint x)
-> (forall x. Rep ChEntrypoint x -> ChEntrypoint)
-> Generic ChEntrypoint
forall x. Rep ChEntrypoint x -> ChEntrypoint
forall x. ChEntrypoint -> Rep ChEntrypoint x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ChEntrypoint x -> ChEntrypoint
$cfrom :: forall x. ChEntrypoint -> Rep ChEntrypoint x
Generic)
data ChPkgDb = ChPkgGlobal
| ChPkgUser
| ChPkgSpecific FilePath
deriving (ChPkgDb -> ChPkgDb -> Bool
(ChPkgDb -> ChPkgDb -> Bool)
-> (ChPkgDb -> ChPkgDb -> Bool) -> Eq ChPkgDb
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ChPkgDb -> ChPkgDb -> Bool
$c/= :: ChPkgDb -> ChPkgDb -> Bool
== :: ChPkgDb -> ChPkgDb -> Bool
$c== :: ChPkgDb -> ChPkgDb -> Bool
Eq, Eq ChPkgDb
Eq ChPkgDb
-> (ChPkgDb -> ChPkgDb -> Ordering)
-> (ChPkgDb -> ChPkgDb -> Bool)
-> (ChPkgDb -> ChPkgDb -> Bool)
-> (ChPkgDb -> ChPkgDb -> Bool)
-> (ChPkgDb -> ChPkgDb -> Bool)
-> (ChPkgDb -> ChPkgDb -> ChPkgDb)
-> (ChPkgDb -> ChPkgDb -> ChPkgDb)
-> Ord ChPkgDb
ChPkgDb -> ChPkgDb -> Bool
ChPkgDb -> ChPkgDb -> Ordering
ChPkgDb -> ChPkgDb -> ChPkgDb
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 :: ChPkgDb -> ChPkgDb -> ChPkgDb
$cmin :: ChPkgDb -> ChPkgDb -> ChPkgDb
max :: ChPkgDb -> ChPkgDb -> ChPkgDb
$cmax :: ChPkgDb -> ChPkgDb -> ChPkgDb
>= :: ChPkgDb -> ChPkgDb -> Bool
$c>= :: ChPkgDb -> ChPkgDb -> Bool
> :: ChPkgDb -> ChPkgDb -> Bool
$c> :: ChPkgDb -> ChPkgDb -> Bool
<= :: ChPkgDb -> ChPkgDb -> Bool
$c<= :: ChPkgDb -> ChPkgDb -> Bool
< :: ChPkgDb -> ChPkgDb -> Bool
$c< :: ChPkgDb -> ChPkgDb -> Bool
compare :: ChPkgDb -> ChPkgDb -> Ordering
$ccompare :: ChPkgDb -> ChPkgDb -> Ordering
$cp1Ord :: Eq ChPkgDb
Ord, ReadPrec [ChPkgDb]
ReadPrec ChPkgDb
Int -> ReadS ChPkgDb
ReadS [ChPkgDb]
(Int -> ReadS ChPkgDb)
-> ReadS [ChPkgDb]
-> ReadPrec ChPkgDb
-> ReadPrec [ChPkgDb]
-> Read ChPkgDb
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ChPkgDb]
$creadListPrec :: ReadPrec [ChPkgDb]
readPrec :: ReadPrec ChPkgDb
$creadPrec :: ReadPrec ChPkgDb
readList :: ReadS [ChPkgDb]
$creadList :: ReadS [ChPkgDb]
readsPrec :: Int -> ReadS ChPkgDb
$creadsPrec :: Int -> ReadS ChPkgDb
Read, Int -> ChPkgDb -> ShowS
[ChPkgDb] -> ShowS
ChPkgDb -> String
(Int -> ChPkgDb -> ShowS)
-> (ChPkgDb -> String) -> ([ChPkgDb] -> ShowS) -> Show ChPkgDb
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ChPkgDb] -> ShowS
$cshowList :: [ChPkgDb] -> ShowS
show :: ChPkgDb -> String
$cshow :: ChPkgDb -> String
showsPrec :: Int -> ChPkgDb -> ShowS
$cshowsPrec :: Int -> ChPkgDb -> ShowS
Show, (forall x. ChPkgDb -> Rep ChPkgDb x)
-> (forall x. Rep ChPkgDb x -> ChPkgDb) -> Generic ChPkgDb
forall x. Rep ChPkgDb x -> ChPkgDb
forall x. ChPkgDb -> Rep ChPkgDb x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ChPkgDb x -> ChPkgDb
$cfrom :: forall x. ChPkgDb -> Rep ChPkgDb x
Generic)