{-# LANGUAGE DeriveGeneric, DeriveDataTypeable, GeneralizedNewtypeDeriving #-}
module Distribution.Client.ProjectConfig.Types (
ProjectConfig(..),
ProjectConfigBuildOnly(..),
ProjectConfigShared(..),
ProjectConfigProvenance(..),
PackageConfig(..),
SolverSettings(..),
BuildTimeSettings(..),
MapLast(..),
MapMappend(..),
) where
import Distribution.Client.Compat.Prelude
import Prelude ()
import Distribution.Client.Types.Repo ( RemoteRepo, LocalRepo )
import Distribution.Client.Types.AllowNewer ( AllowNewer(..), AllowOlder(..) )
import Distribution.Client.Types.WriteGhcEnvironmentFilesPolicy ( WriteGhcEnvironmentFilesPolicy )
import Distribution.Client.Dependency.Types
( PreSolver )
import Distribution.Client.Targets
( UserConstraint )
import Distribution.Client.BuildReports.Types
( ReportLevel(..) )
import Distribution.Client.Types.SourceRepo (SourceRepoList)
import Distribution.Client.IndexUtils.IndexState
( TotalIndexState )
import Distribution.Client.IndexUtils.ActiveRepos
( ActiveRepos )
import Distribution.Client.CmdInstall.ClientInstallFlags
( ClientInstallFlags(..) )
import Distribution.Solver.Types.Settings
import Distribution.Solver.Types.ConstraintSource
import Distribution.Package
( PackageName, PackageId, UnitId )
import Distribution.Types.PackageVersionConstraint
( PackageVersionConstraint )
import Distribution.Version
( Version )
import Distribution.System
( Platform )
import Distribution.PackageDescription
( FlagAssignment )
import Distribution.Simple.Compiler
( Compiler, CompilerFlavor, PackageDB
, OptimisationLevel(..), ProfDetailLevel, DebugInfoLevel(..) )
import Distribution.Simple.Setup
( Flag, HaddockTarget(..), TestShowDetails(..), DumpBuildInfo (..) )
import Distribution.Simple.InstallDirs
( PathTemplate, InstallDirs )
import Distribution.Utils.NubList
( NubList )
import qualified Data.Map as Map
data ProjectConfig
= ProjectConfig {
ProjectConfig -> [String]
projectPackages :: [String],
ProjectConfig -> [String]
projectPackagesOptional :: [String],
ProjectConfig -> [SourceRepoList]
projectPackagesRepo :: [SourceRepoList],
ProjectConfig -> [PackageVersionConstraint]
projectPackagesNamed :: [PackageVersionConstraint],
ProjectConfig -> ProjectConfigBuildOnly
projectConfigBuildOnly :: ProjectConfigBuildOnly,
ProjectConfig -> ProjectConfigShared
projectConfigShared :: ProjectConfigShared,
ProjectConfig -> Set ProjectConfigProvenance
projectConfigProvenance :: Set ProjectConfigProvenance,
ProjectConfig -> PackageConfig
projectConfigAllPackages :: PackageConfig,
ProjectConfig -> PackageConfig
projectConfigLocalPackages :: PackageConfig,
ProjectConfig -> MapMappend PackageName PackageConfig
projectConfigSpecificPackage :: MapMappend PackageName PackageConfig
}
deriving (ProjectConfig -> ProjectConfig -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProjectConfig -> ProjectConfig -> Bool
$c/= :: ProjectConfig -> ProjectConfig -> Bool
== :: ProjectConfig -> ProjectConfig -> Bool
$c== :: ProjectConfig -> ProjectConfig -> Bool
Eq, Int -> ProjectConfig -> ShowS
[ProjectConfig] -> ShowS
ProjectConfig -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProjectConfig] -> ShowS
$cshowList :: [ProjectConfig] -> ShowS
show :: ProjectConfig -> String
$cshow :: ProjectConfig -> String
showsPrec :: Int -> ProjectConfig -> ShowS
$cshowsPrec :: Int -> ProjectConfig -> ShowS
Show, forall x. Rep ProjectConfig x -> ProjectConfig
forall x. ProjectConfig -> Rep ProjectConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ProjectConfig x -> ProjectConfig
$cfrom :: forall x. ProjectConfig -> Rep ProjectConfig x
Generic, Typeable)
data ProjectConfigBuildOnly
= ProjectConfigBuildOnly {
ProjectConfigBuildOnly -> Flag Verbosity
projectConfigVerbosity :: Flag Verbosity,
ProjectConfigBuildOnly -> Flag Bool
projectConfigDryRun :: Flag Bool,
ProjectConfigBuildOnly -> Flag Bool
projectConfigOnlyDeps :: Flag Bool,
ProjectConfigBuildOnly -> Flag Bool
projectConfigOnlyDownload :: Flag Bool,
ProjectConfigBuildOnly -> NubList PathTemplate
projectConfigSummaryFile :: NubList PathTemplate,
ProjectConfigBuildOnly -> Flag PathTemplate
projectConfigLogFile :: Flag PathTemplate,
ProjectConfigBuildOnly -> Flag ReportLevel
projectConfigBuildReports :: Flag ReportLevel,
ProjectConfigBuildOnly -> Flag Bool
projectConfigReportPlanningFailure :: Flag Bool,
ProjectConfigBuildOnly -> Flag String
projectConfigSymlinkBinDir :: Flag FilePath,
ProjectConfigBuildOnly -> Flag (Maybe Int)
projectConfigNumJobs :: Flag (Maybe Int),
ProjectConfigBuildOnly -> Flag Bool
projectConfigKeepGoing :: Flag Bool,
ProjectConfigBuildOnly -> Flag Bool
projectConfigOfflineMode :: Flag Bool,
ProjectConfigBuildOnly -> Flag Bool
projectConfigKeepTempFiles :: Flag Bool,
ProjectConfigBuildOnly -> Flag String
projectConfigHttpTransport :: Flag String,
ProjectConfigBuildOnly -> Flag Bool
projectConfigIgnoreExpiry :: Flag Bool,
ProjectConfigBuildOnly -> Flag String
projectConfigCacheDir :: Flag FilePath,
ProjectConfigBuildOnly -> Flag String
projectConfigLogsDir :: Flag FilePath,
ProjectConfigBuildOnly -> ClientInstallFlags
projectConfigClientInstallFlags :: ClientInstallFlags
}
deriving (ProjectConfigBuildOnly -> ProjectConfigBuildOnly -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProjectConfigBuildOnly -> ProjectConfigBuildOnly -> Bool
$c/= :: ProjectConfigBuildOnly -> ProjectConfigBuildOnly -> Bool
== :: ProjectConfigBuildOnly -> ProjectConfigBuildOnly -> Bool
$c== :: ProjectConfigBuildOnly -> ProjectConfigBuildOnly -> Bool
Eq, Int -> ProjectConfigBuildOnly -> ShowS
[ProjectConfigBuildOnly] -> ShowS
ProjectConfigBuildOnly -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProjectConfigBuildOnly] -> ShowS
$cshowList :: [ProjectConfigBuildOnly] -> ShowS
show :: ProjectConfigBuildOnly -> String
$cshow :: ProjectConfigBuildOnly -> String
showsPrec :: Int -> ProjectConfigBuildOnly -> ShowS
$cshowsPrec :: Int -> ProjectConfigBuildOnly -> ShowS
Show, forall x. Rep ProjectConfigBuildOnly x -> ProjectConfigBuildOnly
forall x. ProjectConfigBuildOnly -> Rep ProjectConfigBuildOnly x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ProjectConfigBuildOnly x -> ProjectConfigBuildOnly
$cfrom :: forall x. ProjectConfigBuildOnly -> Rep ProjectConfigBuildOnly x
Generic)
data ProjectConfigShared
= ProjectConfigShared {
ProjectConfigShared -> Flag String
projectConfigDistDir :: Flag FilePath,
ProjectConfigShared -> Flag String
projectConfigConfigFile :: Flag FilePath,
ProjectConfigShared -> Flag String
projectConfigProjectFile :: Flag FilePath,
ProjectConfigShared -> Flag Bool
projectConfigIgnoreProject :: Flag Bool,
ProjectConfigShared -> Flag CompilerFlavor
projectConfigHcFlavor :: Flag CompilerFlavor,
ProjectConfigShared -> Flag String
projectConfigHcPath :: Flag FilePath,
ProjectConfigShared -> Flag String
projectConfigHcPkg :: Flag FilePath,
ProjectConfigShared -> Flag PathTemplate
projectConfigHaddockIndex :: Flag PathTemplate,
ProjectConfigShared -> InstallDirs (Flag PathTemplate)
projectConfigInstallDirs :: InstallDirs (Flag PathTemplate),
ProjectConfigShared -> [Maybe PackageDB]
projectConfigPackageDBs :: [Maybe PackageDB],
ProjectConfigShared -> NubList RemoteRepo
projectConfigRemoteRepos :: NubList RemoteRepo,
ProjectConfigShared -> NubList LocalRepo
projectConfigLocalNoIndexRepos :: NubList LocalRepo,
ProjectConfigShared -> Flag ActiveRepos
projectConfigActiveRepos :: Flag ActiveRepos,
ProjectConfigShared -> Flag TotalIndexState
projectConfigIndexState :: Flag TotalIndexState,
ProjectConfigShared -> Flag String
projectConfigStoreDir :: Flag FilePath,
ProjectConfigShared -> [(UserConstraint, ConstraintSource)]
projectConfigConstraints :: [(UserConstraint, ConstraintSource)],
ProjectConfigShared -> [PackageVersionConstraint]
projectConfigPreferences :: [PackageVersionConstraint],
ProjectConfigShared -> Flag Version
projectConfigCabalVersion :: Flag Version,
ProjectConfigShared -> Flag PreSolver
projectConfigSolver :: Flag PreSolver,
ProjectConfigShared -> Maybe AllowOlder
projectConfigAllowOlder :: Maybe AllowOlder,
ProjectConfigShared -> Maybe AllowNewer
projectConfigAllowNewer :: Maybe AllowNewer,
ProjectConfigShared -> Flag WriteGhcEnvironmentFilesPolicy
projectConfigWriteGhcEnvironmentFilesPolicy
:: Flag WriteGhcEnvironmentFilesPolicy,
ProjectConfigShared -> Flag Int
projectConfigMaxBackjumps :: Flag Int,
ProjectConfigShared -> Flag ReorderGoals
projectConfigReorderGoals :: Flag ReorderGoals,
ProjectConfigShared -> Flag CountConflicts
projectConfigCountConflicts :: Flag CountConflicts,
ProjectConfigShared -> Flag FineGrainedConflicts
projectConfigFineGrainedConflicts :: Flag FineGrainedConflicts,
ProjectConfigShared -> Flag MinimizeConflictSet
projectConfigMinimizeConflictSet :: Flag MinimizeConflictSet,
ProjectConfigShared -> Flag StrongFlags
projectConfigStrongFlags :: Flag StrongFlags,
ProjectConfigShared -> Flag AllowBootLibInstalls
projectConfigAllowBootLibInstalls :: Flag AllowBootLibInstalls,
ProjectConfigShared -> Flag OnlyConstrained
projectConfigOnlyConstrained :: Flag OnlyConstrained,
ProjectConfigShared -> Flag Bool
projectConfigPerComponent :: Flag Bool,
ProjectConfigShared -> Flag IndependentGoals
projectConfigIndependentGoals :: Flag IndependentGoals,
ProjectConfigShared -> Flag PreferOldest
projectConfigPreferOldest :: Flag PreferOldest,
:: NubList FilePath
}
deriving (ProjectConfigShared -> ProjectConfigShared -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProjectConfigShared -> ProjectConfigShared -> Bool
$c/= :: ProjectConfigShared -> ProjectConfigShared -> Bool
== :: ProjectConfigShared -> ProjectConfigShared -> Bool
$c== :: ProjectConfigShared -> ProjectConfigShared -> Bool
Eq, Int -> ProjectConfigShared -> ShowS
[ProjectConfigShared] -> ShowS
ProjectConfigShared -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProjectConfigShared] -> ShowS
$cshowList :: [ProjectConfigShared] -> ShowS
show :: ProjectConfigShared -> String
$cshow :: ProjectConfigShared -> String
showsPrec :: Int -> ProjectConfigShared -> ShowS
$cshowsPrec :: Int -> ProjectConfigShared -> ShowS
Show, forall x. Rep ProjectConfigShared x -> ProjectConfigShared
forall x. ProjectConfigShared -> Rep ProjectConfigShared x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ProjectConfigShared x -> ProjectConfigShared
$cfrom :: forall x. ProjectConfigShared -> Rep ProjectConfigShared x
Generic)
data ProjectConfigProvenance
= Implicit
| Explicit FilePath
deriving (ProjectConfigProvenance -> ProjectConfigProvenance -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProjectConfigProvenance -> ProjectConfigProvenance -> Bool
$c/= :: ProjectConfigProvenance -> ProjectConfigProvenance -> Bool
== :: ProjectConfigProvenance -> ProjectConfigProvenance -> Bool
$c== :: ProjectConfigProvenance -> ProjectConfigProvenance -> Bool
Eq, Eq ProjectConfigProvenance
ProjectConfigProvenance -> ProjectConfigProvenance -> Bool
ProjectConfigProvenance -> ProjectConfigProvenance -> Ordering
ProjectConfigProvenance
-> ProjectConfigProvenance -> ProjectConfigProvenance
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 :: ProjectConfigProvenance
-> ProjectConfigProvenance -> ProjectConfigProvenance
$cmin :: ProjectConfigProvenance
-> ProjectConfigProvenance -> ProjectConfigProvenance
max :: ProjectConfigProvenance
-> ProjectConfigProvenance -> ProjectConfigProvenance
$cmax :: ProjectConfigProvenance
-> ProjectConfigProvenance -> ProjectConfigProvenance
>= :: ProjectConfigProvenance -> ProjectConfigProvenance -> Bool
$c>= :: ProjectConfigProvenance -> ProjectConfigProvenance -> Bool
> :: ProjectConfigProvenance -> ProjectConfigProvenance -> Bool
$c> :: ProjectConfigProvenance -> ProjectConfigProvenance -> Bool
<= :: ProjectConfigProvenance -> ProjectConfigProvenance -> Bool
$c<= :: ProjectConfigProvenance -> ProjectConfigProvenance -> Bool
< :: ProjectConfigProvenance -> ProjectConfigProvenance -> Bool
$c< :: ProjectConfigProvenance -> ProjectConfigProvenance -> Bool
compare :: ProjectConfigProvenance -> ProjectConfigProvenance -> Ordering
$ccompare :: ProjectConfigProvenance -> ProjectConfigProvenance -> Ordering
Ord, Int -> ProjectConfigProvenance -> ShowS
[ProjectConfigProvenance] -> ShowS
ProjectConfigProvenance -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProjectConfigProvenance] -> ShowS
$cshowList :: [ProjectConfigProvenance] -> ShowS
show :: ProjectConfigProvenance -> String
$cshow :: ProjectConfigProvenance -> String
showsPrec :: Int -> ProjectConfigProvenance -> ShowS
$cshowsPrec :: Int -> ProjectConfigProvenance -> ShowS
Show, forall x. Rep ProjectConfigProvenance x -> ProjectConfigProvenance
forall x. ProjectConfigProvenance -> Rep ProjectConfigProvenance x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ProjectConfigProvenance x -> ProjectConfigProvenance
$cfrom :: forall x. ProjectConfigProvenance -> Rep ProjectConfigProvenance x
Generic)
data PackageConfig
= PackageConfig {
PackageConfig -> MapLast String String
packageConfigProgramPaths :: MapLast String FilePath,
PackageConfig -> MapMappend String [String]
packageConfigProgramArgs :: MapMappend String [String],
:: NubList FilePath,
PackageConfig -> FlagAssignment
packageConfigFlagAssignment :: FlagAssignment,
PackageConfig -> Flag Bool
packageConfigVanillaLib :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigSharedLib :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigStaticLib :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigDynExe :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigFullyStaticExe :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigProf :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigProfLib :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigProfExe :: Flag Bool,
PackageConfig -> Flag ProfDetailLevel
packageConfigProfDetail :: Flag ProfDetailLevel,
PackageConfig -> Flag ProfDetailLevel
packageConfigProfLibDetail :: Flag ProfDetailLevel,
PackageConfig -> [String]
packageConfigConfigureArgs :: [String],
PackageConfig -> Flag OptimisationLevel
packageConfigOptimization :: Flag OptimisationLevel,
PackageConfig -> Flag PathTemplate
packageConfigProgPrefix :: Flag PathTemplate,
PackageConfig -> Flag PathTemplate
packageConfigProgSuffix :: Flag PathTemplate,
:: [FilePath],
:: [FilePath],
:: [FilePath],
:: [FilePath],
PackageConfig -> Flag Bool
packageConfigGHCiLib :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigSplitSections :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigSplitObjs :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigStripExes :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigStripLibs :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigTests :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigBenchmarks :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigCoverage :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigRelocatable :: Flag Bool,
PackageConfig -> Flag DebugInfoLevel
packageConfigDebugInfo :: Flag DebugInfoLevel,
PackageConfig -> Flag DumpBuildInfo
packageConfigDumpBuildInfo :: Flag DumpBuildInfo,
PackageConfig -> Flag Bool
packageConfigRunTests :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigDocumentation :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigHaddockHoogle :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigHaddockHtml :: Flag Bool,
PackageConfig -> Flag String
packageConfigHaddockHtmlLocation :: Flag String,
PackageConfig -> Flag Bool
packageConfigHaddockForeignLibs :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigHaddockExecutables :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigHaddockTestSuites :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigHaddockBenchmarks :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigHaddockInternal :: Flag Bool,
PackageConfig -> Flag String
packageConfigHaddockCss :: Flag FilePath,
PackageConfig -> Flag Bool
packageConfigHaddockLinkedSource :: Flag Bool,
PackageConfig -> Flag Bool
packageConfigHaddockQuickJump :: Flag Bool,
PackageConfig -> Flag String
packageConfigHaddockHscolourCss :: Flag FilePath,
PackageConfig -> Flag PathTemplate
packageConfigHaddockContents :: Flag PathTemplate,
PackageConfig -> Flag PathTemplate
packageConfigHaddockIndex :: Flag PathTemplate,
PackageConfig -> Flag String
packageConfigHaddockBaseUrl :: Flag String,
PackageConfig -> Flag String
packageConfigHaddockLib :: Flag String,
PackageConfig -> Flag HaddockTarget
packageConfigHaddockForHackage :: Flag HaddockTarget,
PackageConfig -> Flag PathTemplate
packageConfigTestHumanLog :: Flag PathTemplate,
PackageConfig -> Flag PathTemplate
packageConfigTestMachineLog :: Flag PathTemplate,
PackageConfig -> Flag TestShowDetails
packageConfigTestShowDetails :: Flag TestShowDetails,
PackageConfig -> Flag Bool
packageConfigTestKeepTix :: Flag Bool,
PackageConfig -> Flag String
packageConfigTestWrapper :: Flag FilePath,
PackageConfig -> Flag Bool
packageConfigTestFailWhenNoTestSuites :: Flag Bool,
PackageConfig -> [PathTemplate]
packageConfigTestTestOptions :: [PathTemplate],
PackageConfig -> [PathTemplate]
packageConfigBenchmarkOptions :: [PathTemplate]
}
deriving (PackageConfig -> PackageConfig -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PackageConfig -> PackageConfig -> Bool
$c/= :: PackageConfig -> PackageConfig -> Bool
== :: PackageConfig -> PackageConfig -> Bool
$c== :: PackageConfig -> PackageConfig -> Bool
Eq, Int -> PackageConfig -> ShowS
[PackageConfig] -> ShowS
PackageConfig -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PackageConfig] -> ShowS
$cshowList :: [PackageConfig] -> ShowS
show :: PackageConfig -> String
$cshow :: PackageConfig -> String
showsPrec :: Int -> PackageConfig -> ShowS
$cshowsPrec :: Int -> PackageConfig -> ShowS
Show, forall x. Rep PackageConfig x -> PackageConfig
forall x. PackageConfig -> Rep PackageConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep PackageConfig x -> PackageConfig
$cfrom :: forall x. PackageConfig -> Rep PackageConfig x
Generic)
instance Binary ProjectConfig
instance Binary ProjectConfigBuildOnly
instance Binary ProjectConfigShared
instance Binary ProjectConfigProvenance
instance Binary PackageConfig
instance Structured ProjectConfig
instance Structured ProjectConfigBuildOnly
instance Structured ProjectConfigShared
instance Structured ProjectConfigProvenance
instance Structured PackageConfig
newtype MapLast k v = MapLast { forall k v. MapLast k v -> Map k v
getMapLast :: Map k v }
deriving (MapLast k v -> MapLast k v -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall k v. (Eq k, Eq v) => MapLast k v -> MapLast k v -> Bool
/= :: MapLast k v -> MapLast k v -> Bool
$c/= :: forall k v. (Eq k, Eq v) => MapLast k v -> MapLast k v -> Bool
== :: MapLast k v -> MapLast k v -> Bool
$c== :: forall k v. (Eq k, Eq v) => MapLast k v -> MapLast k v -> Bool
Eq, Int -> MapLast k v -> ShowS
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall k v. (Show k, Show v) => Int -> MapLast k v -> ShowS
forall k v. (Show k, Show v) => [MapLast k v] -> ShowS
forall k v. (Show k, Show v) => MapLast k v -> String
showList :: [MapLast k v] -> ShowS
$cshowList :: forall k v. (Show k, Show v) => [MapLast k v] -> ShowS
show :: MapLast k v -> String
$cshow :: forall k v. (Show k, Show v) => MapLast k v -> String
showsPrec :: Int -> MapLast k v -> ShowS
$cshowsPrec :: forall k v. (Show k, Show v) => Int -> MapLast k v -> ShowS
Show, forall a b. a -> MapLast k b -> MapLast k a
forall a b. (a -> b) -> MapLast k a -> MapLast k b
forall k a b. a -> MapLast k b -> MapLast k a
forall k a b. (a -> b) -> MapLast k a -> MapLast k b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: forall a b. a -> MapLast k b -> MapLast k a
$c<$ :: forall k a b. a -> MapLast k b -> MapLast k a
fmap :: forall a b. (a -> b) -> MapLast k a -> MapLast k b
$cfmap :: forall k a b. (a -> b) -> MapLast k a -> MapLast k b
Functor, forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall k v x. Rep (MapLast k v) x -> MapLast k v
forall k v x. MapLast k v -> Rep (MapLast k v) x
$cto :: forall k v x. Rep (MapLast k v) x -> MapLast k v
$cfrom :: forall k v x. MapLast k v -> Rep (MapLast k v) x
Generic, Get (MapLast k v)
[MapLast k v] -> Put
MapLast k v -> Put
forall t. (t -> Put) -> Get t -> ([t] -> Put) -> Binary t
forall k v. (Binary k, Binary v) => Get (MapLast k v)
forall k v. (Binary k, Binary v) => [MapLast k v] -> Put
forall k v. (Binary k, Binary v) => MapLast k v -> Put
putList :: [MapLast k v] -> Put
$cputList :: forall k v. (Binary k, Binary v) => [MapLast k v] -> Put
get :: Get (MapLast k v)
$cget :: forall k v. (Binary k, Binary v) => Get (MapLast k v)
put :: MapLast k v -> Put
$cput :: forall k v. (Binary k, Binary v) => MapLast k v -> Put
Binary, Typeable)
instance (Structured k, Structured v) => Structured (MapLast k v)
instance Ord k => Monoid (MapLast k v) where
mempty :: MapLast k v
mempty = forall k v. Map k v -> MapLast k v
MapLast forall k a. Map k a
Map.empty
mappend :: MapLast k v -> MapLast k v -> MapLast k v
mappend = forall a. Semigroup a => a -> a -> a
(<>)
instance Ord k => Semigroup (MapLast k v) where
MapLast Map k v
a <> :: MapLast k v -> MapLast k v -> MapLast k v
<> MapLast Map k v
b = forall k v. Map k v -> MapLast k v
MapLast forall a b. (a -> b) -> a -> b
$ forall k a. Ord k => Map k a -> Map k a -> Map k a
Map.union Map k v
b Map k v
a
newtype MapMappend k v = MapMappend { forall k v. MapMappend k v -> Map k v
getMapMappend :: Map k v }
deriving (MapMappend k v -> MapMappend k v -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall k v.
(Eq k, Eq v) =>
MapMappend k v -> MapMappend k v -> Bool
/= :: MapMappend k v -> MapMappend k v -> Bool
$c/= :: forall k v.
(Eq k, Eq v) =>
MapMappend k v -> MapMappend k v -> Bool
== :: MapMappend k v -> MapMappend k v -> Bool
$c== :: forall k v.
(Eq k, Eq v) =>
MapMappend k v -> MapMappend k v -> Bool
Eq, Int -> MapMappend k v -> ShowS
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall k v. (Show k, Show v) => Int -> MapMappend k v -> ShowS
forall k v. (Show k, Show v) => [MapMappend k v] -> ShowS
forall k v. (Show k, Show v) => MapMappend k v -> String
showList :: [MapMappend k v] -> ShowS
$cshowList :: forall k v. (Show k, Show v) => [MapMappend k v] -> ShowS
show :: MapMappend k v -> String
$cshow :: forall k v. (Show k, Show v) => MapMappend k v -> String
showsPrec :: Int -> MapMappend k v -> ShowS
$cshowsPrec :: forall k v. (Show k, Show v) => Int -> MapMappend k v -> ShowS
Show, forall a b. a -> MapMappend k b -> MapMappend k a
forall a b. (a -> b) -> MapMappend k a -> MapMappend k b
forall k a b. a -> MapMappend k b -> MapMappend k a
forall k a b. (a -> b) -> MapMappend k a -> MapMappend k b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
<$ :: forall a b. a -> MapMappend k b -> MapMappend k a
$c<$ :: forall k a b. a -> MapMappend k b -> MapMappend k a
fmap :: forall a b. (a -> b) -> MapMappend k a -> MapMappend k b
$cfmap :: forall k a b. (a -> b) -> MapMappend k a -> MapMappend k b
Functor, forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall k v x. Rep (MapMappend k v) x -> MapMappend k v
forall k v x. MapMappend k v -> Rep (MapMappend k v) x
$cto :: forall k v x. Rep (MapMappend k v) x -> MapMappend k v
$cfrom :: forall k v x. MapMappend k v -> Rep (MapMappend k v) x
Generic, Get (MapMappend k v)
[MapMappend k v] -> Put
MapMappend k v -> Put
forall t. (t -> Put) -> Get t -> ([t] -> Put) -> Binary t
forall k v. (Binary k, Binary v) => Get (MapMappend k v)
forall k v. (Binary k, Binary v) => [MapMappend k v] -> Put
forall k v. (Binary k, Binary v) => MapMappend k v -> Put
putList :: [MapMappend k v] -> Put
$cputList :: forall k v. (Binary k, Binary v) => [MapMappend k v] -> Put
get :: Get (MapMappend k v)
$cget :: forall k v. (Binary k, Binary v) => Get (MapMappend k v)
put :: MapMappend k v -> Put
$cput :: forall k v. (Binary k, Binary v) => MapMappend k v -> Put
Binary, Typeable)
instance (Structured k, Structured v) => Structured (MapMappend k v)
instance (Semigroup v, Ord k) => Monoid (MapMappend k v) where
mempty :: MapMappend k v
mempty = forall k v. Map k v -> MapMappend k v
MapMappend forall k a. Map k a
Map.empty
mappend :: MapMappend k v -> MapMappend k v -> MapMappend k v
mappend = forall a. Semigroup a => a -> a -> a
(<>)
instance (Semigroup v, Ord k) => Semigroup (MapMappend k v) where
MapMappend Map k v
a <> :: MapMappend k v -> MapMappend k v -> MapMappend k v
<> MapMappend Map k v
b = forall k v. Map k v -> MapMappend k v
MapMappend (forall k a. Ord k => (a -> a -> a) -> Map k a -> Map k a -> Map k a
Map.unionWith forall a. Semigroup a => a -> a -> a
(<>) Map k v
a Map k v
b)
instance Monoid ProjectConfig where
mempty :: ProjectConfig
mempty = forall a. (Generic a, GMonoid (Rep a)) => a
gmempty
mappend :: ProjectConfig -> ProjectConfig -> ProjectConfig
mappend = forall a. Semigroup a => a -> a -> a
(<>)
instance Semigroup ProjectConfig where
<> :: ProjectConfig -> ProjectConfig -> ProjectConfig
(<>) = forall a. (Generic a, GSemigroup (Rep a)) => a -> a -> a
gmappend
instance Monoid ProjectConfigBuildOnly where
mempty :: ProjectConfigBuildOnly
mempty = forall a. (Generic a, GMonoid (Rep a)) => a
gmempty
mappend :: ProjectConfigBuildOnly
-> ProjectConfigBuildOnly -> ProjectConfigBuildOnly
mappend = forall a. Semigroup a => a -> a -> a
(<>)
instance Semigroup ProjectConfigBuildOnly where
<> :: ProjectConfigBuildOnly
-> ProjectConfigBuildOnly -> ProjectConfigBuildOnly
(<>) = forall a. (Generic a, GSemigroup (Rep a)) => a -> a -> a
gmappend
instance Monoid ProjectConfigShared where
mempty :: ProjectConfigShared
mempty = forall a. (Generic a, GMonoid (Rep a)) => a
gmempty
mappend :: ProjectConfigShared -> ProjectConfigShared -> ProjectConfigShared
mappend = forall a. Semigroup a => a -> a -> a
(<>)
instance Semigroup ProjectConfigShared where
<> :: ProjectConfigShared -> ProjectConfigShared -> ProjectConfigShared
(<>) = forall a. (Generic a, GSemigroup (Rep a)) => a -> a -> a
gmappend
instance Monoid PackageConfig where
mempty :: PackageConfig
mempty = forall a. (Generic a, GMonoid (Rep a)) => a
gmempty
mappend :: PackageConfig -> PackageConfig -> PackageConfig
mappend = forall a. Semigroup a => a -> a -> a
(<>)
instance Semigroup PackageConfig where
<> :: PackageConfig -> PackageConfig -> PackageConfig
(<>) = forall a. (Generic a, GSemigroup (Rep a)) => a -> a -> a
gmappend
data SolverSettings
= SolverSettings {
SolverSettings -> [RemoteRepo]
solverSettingRemoteRepos :: [RemoteRepo],
SolverSettings -> [LocalRepo]
solverSettingLocalNoIndexRepos :: [LocalRepo],
SolverSettings -> [(UserConstraint, ConstraintSource)]
solverSettingConstraints :: [(UserConstraint, ConstraintSource)],
SolverSettings -> [PackageVersionConstraint]
solverSettingPreferences :: [PackageVersionConstraint],
SolverSettings -> FlagAssignment
solverSettingFlagAssignment :: FlagAssignment,
SolverSettings -> Map PackageName FlagAssignment
solverSettingFlagAssignments :: Map PackageName FlagAssignment,
SolverSettings -> Maybe Version
solverSettingCabalVersion :: Maybe Version,
SolverSettings -> PreSolver
solverSettingSolver :: PreSolver,
SolverSettings -> AllowOlder
solverSettingAllowOlder :: AllowOlder,
SolverSettings -> AllowNewer
solverSettingAllowNewer :: AllowNewer,
SolverSettings -> Maybe Int
solverSettingMaxBackjumps :: Maybe Int,
SolverSettings -> ReorderGoals
solverSettingReorderGoals :: ReorderGoals,
SolverSettings -> CountConflicts
solverSettingCountConflicts :: CountConflicts,
SolverSettings -> FineGrainedConflicts
solverSettingFineGrainedConflicts :: FineGrainedConflicts,
SolverSettings -> MinimizeConflictSet
solverSettingMinimizeConflictSet :: MinimizeConflictSet,
SolverSettings -> StrongFlags
solverSettingStrongFlags :: StrongFlags,
SolverSettings -> AllowBootLibInstalls
solverSettingAllowBootLibInstalls :: AllowBootLibInstalls,
SolverSettings -> OnlyConstrained
solverSettingOnlyConstrained :: OnlyConstrained,
SolverSettings -> Maybe TotalIndexState
solverSettingIndexState :: Maybe TotalIndexState,
SolverSettings -> Maybe ActiveRepos
solverSettingActiveRepos :: Maybe ActiveRepos,
SolverSettings -> IndependentGoals
solverSettingIndependentGoals :: IndependentGoals,
SolverSettings -> PreferOldest
solverSettingPreferOldest :: PreferOldest
}
deriving (SolverSettings -> SolverSettings -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SolverSettings -> SolverSettings -> Bool
$c/= :: SolverSettings -> SolverSettings -> Bool
== :: SolverSettings -> SolverSettings -> Bool
$c== :: SolverSettings -> SolverSettings -> Bool
Eq, Int -> SolverSettings -> ShowS
[SolverSettings] -> ShowS
SolverSettings -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SolverSettings] -> ShowS
$cshowList :: [SolverSettings] -> ShowS
show :: SolverSettings -> String
$cshow :: SolverSettings -> String
showsPrec :: Int -> SolverSettings -> ShowS
$cshowsPrec :: Int -> SolverSettings -> ShowS
Show, forall x. Rep SolverSettings x -> SolverSettings
forall x. SolverSettings -> Rep SolverSettings x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep SolverSettings x -> SolverSettings
$cfrom :: forall x. SolverSettings -> Rep SolverSettings x
Generic, Typeable)
instance Binary SolverSettings
instance Structured SolverSettings
data BuildTimeSettings
= BuildTimeSettings {
BuildTimeSettings -> Bool
buildSettingDryRun :: Bool,
BuildTimeSettings -> Bool
buildSettingOnlyDeps :: Bool,
BuildTimeSettings -> Bool
buildSettingOnlyDownload :: Bool,
BuildTimeSettings -> [PathTemplate]
buildSettingSummaryFile :: [PathTemplate],
BuildTimeSettings
-> Maybe (Compiler -> Platform -> PackageId -> UnitId -> String)
buildSettingLogFile :: Maybe (Compiler -> Platform
-> PackageId -> UnitId
-> FilePath),
BuildTimeSettings -> Verbosity
buildSettingLogVerbosity :: Verbosity,
BuildTimeSettings -> ReportLevel
buildSettingBuildReports :: ReportLevel,
BuildTimeSettings -> Bool
buildSettingReportPlanningFailure :: Bool,
BuildTimeSettings -> [String]
buildSettingSymlinkBinDir :: [FilePath],
BuildTimeSettings -> Int
buildSettingNumJobs :: Int,
BuildTimeSettings -> Bool
buildSettingKeepGoing :: Bool,
BuildTimeSettings -> Bool
buildSettingOfflineMode :: Bool,
BuildTimeSettings -> Bool
buildSettingKeepTempFiles :: Bool,
BuildTimeSettings -> [RemoteRepo]
buildSettingRemoteRepos :: [RemoteRepo],
BuildTimeSettings -> [LocalRepo]
buildSettingLocalNoIndexRepos :: [LocalRepo],
BuildTimeSettings -> String
buildSettingCacheDir :: FilePath,
BuildTimeSettings -> Maybe String
buildSettingHttpTransport :: Maybe String,
BuildTimeSettings -> Bool
buildSettingIgnoreExpiry :: Bool,
:: [FilePath],
BuildTimeSettings -> Bool
buildSettingHaddockOpen :: Bool
}